{ "openapi":"3.1.0", "info":{ "title":"Infobip OpenAPI Specification", "description":"OpenAPI Specification that contains all public endpoints and webhooks.", "contact":{ "name":"Infobip support", "email":"support@infobip.com" }, "version":"3.210.0", "x-generatedAt":"2026-07-23T15:23:56.306162599Z" }, "tags":[ { "name":"channels", "description":"Create a perfect customer experience by using the channels your customer already use and love.\n", "x-type":"category", "x-displayName":"Channels" }, { "name":"email", "description":"Infobip Email is a cloud-based, all-in-one communication solution suited for both transactional and marketing email message delivery. It allows users to create rich, personalized, and responsive emails using API. Email messaging can be simple with ad-hoc one-way communication or more advanced with template management and scheduled sending.\n\n**Email validation**\nis an essential part of sending targeted emails is to ensure you have a clean list of engaged subscribers. Email validation acts as the first line of defense ensuring accuracy for both your new and existing email lists by providing if validated email is existing or not, aswell as providing you with additional info about mailbox: Valid syntax, Disposable mailbox, Role-based mailbox, Catch-all mailbox.\n", "x-type":"product", "x-displayName":"Email" }, { "name":"email-message-sending", "description":"", "x-type":"section", "x-displayName":"Outbound Email" }, { "name":"inbound-email", "description":"", "x-type":"section", "x-displayName":"Inbound Email" }, { "name":"scheduled-email", "description":"", "x-type":"section", "x-displayName":"Manage Scheduled Email Messages" }, { "name":"email-logs-and-reports", "description":"", "x-type":"section", "x-displayName":"Logs and Status Reports" }, { "name":"email-webhooks", "description":"", "x-type":"section", "x-displayName":"Webhooks" }, { "name":"email-validation", "description":"", "x-type":"section", "x-displayName":"Email Validation" }, { "name":"email-domains", "description":"", "x-type":"section", "x-displayName":"Email Domains" }, { "name":"email-suppression", "description":"", "x-type":"section", "x-displayName":"Email Suppression" }, { "name":"email-ip-management", "description":"", "x-type":"section", "x-displayName":"Email IP Management" }, { "name":"email-templates", "description":"", "x-type":"section", "x-displayName":"Email Templates" } ], "paths":{ "/email/4/messages":{ "post":{ "tags":[ "channels", "email", "email-message-sending" ], "summary":"Send email messages", "description":"99% of all use cases can be achieved by using this API method. Everything from sending a simple single message to a single destination, up to batch sending of personalized messages to the thousands of recipients with a single API request. Scheduling and every advanced feature you can think of is supported.", "externalDocs":{ "description":"Learn more about Email channel and use cases", "url":"https://www.infobip.com/docs/email" }, "operationId":"send-email-messages-api", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailRequest" }, "examples":{ "Email with text with single destination":{ "summary":"Email with text with single destination", "value":{ "messages":[ { "sender":"jenny.smith@company.com", "destinations":[ { "to":[ { "destination":"john.smith@company.com" } ] } ], "content":{ "subject":"Test message", "text":"Test body" } } ] } }, "Email with template with multiple destination":{ "summary":"Email with template with multiple destination", "value":{ "messages":[ { "sender":"jenny.smith@company.com", "destinations":[ { "to":[ { "destination":"john.smith@company.com", "placeholders":"{\"customer_name\":\"John Smith\"}" }, { "destination":"mike.smith@company.com", "placeholders":"{\"customer_name\":\"Mike Smith\"}" } ] } ], "content":{ "templateId":"322307", "defaultPlaceholders":"{\"date\":\"20/03/2018\",\"customer_name\":\"John Smith\"}" } } ] } }, "Email with HTML and placeholders with single destination":{ "summary":"Email with HTML and placeholders with single destination", "value":{ "messages":[ { "sender":"jenny.smith@company.com", "destinations":[ { "to":[ { "destination":"john.smith@company.com", "placeholders":"{\"destination_ph\":\"Destination placeholder\"}" } ] } ], "content":{ "subject":"Test message", "html":"

Html body

\n

Rich HTML message body.

\n
Example with default placeholders: {{default_ph}}
\n
Example with personalized placeholders: {{to_ph}}
", "defaultPlaceholders":"{\"default_ph\":\"Default placeholder\"}" } } ] } }, "Email with tracking options with multiple destinations":{ "summary":"Email with tracking options with multiple destinations", "value":{ "messages":[ { "sender":"jenny.smith@company.com", "destinations":[ { "to":[ { "destination":"john.smith@company.com" } ], "cc":[ { "destination":"bob.smith@somecompany.com" } ], "bcc":[ { "destination":"alice.doe@somecompany.com" } ] } ], "content":{ "subject":"Test message", "html":"

Html body

\n

Rich HTML message body.

\n
This is link that will be shortened and tracked link
" } } ], "options":{ "schedule":{}, "tracking":{}, "clientPriority":"STANDARD" } } }, "Email with attachments":{ "summary":"Email with attachments", "value":{ "messages":[ { "sender":"jenny.smith@company.com", "destinations":[ { "to":[ { "destination":"john.smith@company.com" } ] } ], "content":{ "subject":"Test message", "text":"Text", "attachments":[ { "type":"binary", "content":"Q29udGVudA==", "contentType":"image/png", "fileName":"image.png" }, { "type":"uploadedReference", "contentId":"B44419205B27012D82F3BAD7B7EB37BA157EB26DCA268BD7C62F235165E04EB55EA620E2BB59715F3442C43852922601D294" } ] } } ] } }, "Email with template ID":{ "summary":"Email with template ID", "value":{ "messages":[ { "destinations":[ { "to":[ { "destination":"john.smith@company.com" } ] } ], "content":{ "templateId":"100000000123456" } } ] } }, "Email with IP pool ID":{ "summary":"Email with IP pool ID", "value":{ "messages":[ { "destinations":[ { "to":[ { "destination":"john.smith@company.com" } ] } ], "content":{ "subject":"Test message", "text":"Test body" }, "ips":{ "ipPoolId":"08A3A7608750CC6E6080325A6ADF45B6" } } ] } }, "Email with masked placeholders":{ "summary":"Email with masked placeholders", "value":{ "messages":[ { "sender":"jenny.smith@company.com", "destinations":[ { "to":[ { "destination":"john.smith@company.com", "placeholders":"{\"name\": \"JohnDoe\", \"email\": \"test@example.com\", \"phone\": \"41793026727\"}" } ] } ], "content":{ "subject":"Masking sensitive placeholders , Hi {{name}}, {{email}} , {{phone}}", "html":"Test body {{ph1}} {{ph2}}", "defaultPlaceholders":"{\"ph1\": \"Default\", \"ph2\": \"HideWholePlaceholder\"}" }, "placeholdersMasking":[ { "name":"ph1", "side":"L", "maskChar":"=", "visibleChars":3 }, { "name":"ph2", "maskChar":"#", "skipChars":[ "W" ] }, { "name":"name", "side":"R", "maskChar":"+", "visibleChars":2 }, { "name":"email", "side":"L", "maskChar":"=", "delimiter":"@", "skipChars":[ "_" ] }, { "name":"phone", "side":"L", "maskChar":"+", "skipChars":[ "-", "(", ")" ] } ] } ] } } } } }, "required":true }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailResponse" }, "examples":{ "Success response":{ "summary":"Success response", "value":{ "bulkId":"a28dd97c-2222-4fcf-99f1-0b557ed381da", "messages":[ { "messageId":"a28dd97c-1ffb-4fcf-99f1-0b557ed381da", "status":{ "groupId":1, "groupName":"PENDING", "id":7, "name":"PENDING_ENROUTE", "description":"Message sent to next instance" }, "destination":"john.smith@company.com" } ] } }, "Success response with multiple destinations":{ "summary":"Success response with multiple destinations", "value":{ "bulkId":"a28dd97c-2222-4fcf-99f1-0b557ed381da", "messages":[ { "messageId":"a28dd97c-1ffb-4fcf-99f1-0b557ed381da", "status":{ "groupId":1, "groupName":"PENDING", "id":7, "name":"PENDING_ENROUTE", "description":"Message sent to next instance" }, "destination":"john.smith@company.com" }, { "messageId":"2211d97c-53432-4fcf-99f1-0b557ed381da", "status":{ "groupId":1, "groupName":"PENDING", "id":7, "name":"PENDING_ENROUTE", "description":"Message sent to next instance" }, "destination":"john.doe@company.com" } ] } } } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "message:send", "email:message:send", "email:manage" ], "x-is-early-access":true, "x-throttling-info":[ { "type":"time", "numberOfRequests":4000, "numberOfTimeUnits":0, "timeUnit":"s" } ], "x-versions":[ { "versionNumber":4, "latest":true, "operationId":"send-email-messages-api" }, { "versionNumber":3, "latest":false, "operationId":"send-fully-featured-email" } ] } }, "/email/1/content":{ "post":{ "tags":[ "channels", "email", "email-message-sending" ], "summary":"Upload binary content", "description":"This method allows you to upload binary content that you can reference when sending Email messages.", "operationId":"upload-binary-content", "parameters":[ { "name":"X-Content-Id", "in":"header", "description":"Content ID that uniquely identifies the binary content.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" }, "example":"image_1_jpg" }, { "name":"X-Media-Type", "in":"header", "description":"Content mime type. Should be populated by standard MIME types (IANA media types).", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" }, "example":"image/jpeg" }, { "name":"X-Validity-Period-Minutes", "in":"header", "description":"Validity period in minutes after which the content will be deleted.", "required":false, "style":"simple", "explode":false, "schema":{ "type":"string", "maximum":10080, "minimum":1440 }, "example":3000 } ], "requestBody":{ "content":{ "application/octet-stream":{ "schema":{ "type":"string", "format":"binary" }, "examples":{ "cURL":{ "summary":"cURL", "description":"cURL", "value":"curl -L -X POST 'https://{baseUrl}/email/1/content' \\\n-H 'Authorization: {authorization}' \\\n-H 'Content-Type: application/octet-stream' \\\n-H 'Accept: application/json' \\\n-H 'X-Media-Type: image/jpeg' \\\n-H 'X-Content-Id: image_1_jpg' \\\n--data-binary \"@/path/to/image1.jpg\"\n" }, "HTTP":{ "summary":"HTTP", "description":"HTTP", "value":"POST /email/1/content HTTP/1.1\nHost: {baseUrl}\nAuthorization: {authorization}\nContent-Type: application/octet-stream\nAccept: application/json\nX-Content-Id: image_1_jpg\nX-Media-Type: image/jpeg\n\n(data)" } } } } }, "responses":{ "200":{ "description":"Successful Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.UploadBinaryResult" } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ApiErrorResponse" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "bulkId":"", "messages":[], "errorMessage":"Required request header 'X-Content-Id' for method parameter type String is not present" } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":500, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/3/send":{ "post":{ "tags":[ "channels", "email", "email-message-sending" ], "summary":"Send fully featured email", "description":"Send an email or multiple emails to a recipient or multiple recipients with CC/BCC enabled.", "operationId":"send-fully-featured-email", "requestBody":{ "content":{ "multipart/form-data":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SendRequestSchema" }, "examples":{ "Send fully featured email using curl":{ "summary":"Send fully featured email using curl", "description":"Send fully featured email using curl", "value":"\ncurl --request POST 'https://{base_url}/email/3/send' \\\n--header 'Authorization: Basic {username:password}' \\\n--form 'from=\"Jane Smith \"' \\\n--form 'to=\"john.smith@somedomain.com\"' \\\n--form 'to=\"alice.smith@somedomain.com\"' \\\n--form-string 'to={\"to\": \"alice.grey@somecompany.com\", \"placeholders\": {\"name\":\"Alice\"}}' \\\n--form 'replyTo=\"all.replies@somedomain.com\"' \\\n--form 'subject=\"Mail subject text and placeholder ph1\"' \\\n--form 'text=\"Dear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}\"' \\\n--form 'html=\"

Html body

Rich HTML message body.

\"' \\\n--form 'attachment=@\"/home/user/image.png\"' \\\n--form 'bulkId=\"customBulkId\"' \\\n--form 'intermediateReport=\"true\"' \\\n--form-string 'defaultPlaceholders={\"ph1\": \"Success\", \"ph2\": \"Example\"}' \\\n--form-string 'headers={\"List-Unsubscribe\": \"your unsubscribe link\", \"X-Custom-Header\": \"Header value\"}' \\\n--form 'notifyUrl=\"https://www.example.com/email/advanced\"' \\\n--form 'notifyContentType=\"application/json\"' \\\n--form 'trackClicks=\"true\"' \\\n--form 'trackOpens=\"false\"' \\\n--form 'trackingPixelPosition=\"TOP\"' \\\n--form 'callbackData=\"DLR callback data\"'\n--form 'ipPoolId=\"08A3A7608750CC6E6080325A6ADF45B6\"'\n" }, "Send fully featured with preserved recipients email using curl":{ "summary":"Send fully featured with preserved recipients email using curl", "description":"Send fully featured with preserved recipients email using curl", "value":"\ncurl --request POST 'https://{base_url}/email/3/send' \\\n--header 'Authorization: Basic {username:password}' \\\n--form 'from=\"Jane Smith \"' \\\n--form 'to=\"john.smith@somedomain.com\"' \\\n--form 'to=\"alice.smith@somedomain.com\"' \\\n--form-string 'to={\"to\": \"alice.grey@somecompany.com\", \"placeholders\": {\"name\":\"Alice\"}}' \\\n--form-string 'cc={\"to\": \"jane.grey@somecompany.com\", \"placeholders\": {\"name\":\"Jane\"}}' \\\n--form 'bcc=\"\"eve.grey@somecompany.com\"' \\\n--form 'replyTo=\"all.replies@somedomain.com\"' \\\n--form 'subject=\"Mail subject text and placeholder ph1\"' \\\n--form 'text=\"Dear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}\"' \\\n--form 'html=\"

Html body

Rich HTML message body.

\"' \\\n--form 'attachment=@\"/home/user/image.png\"' \\\n--form 'bulkId=\"customBulkId\"' \\\n--form 'intermediateReport=\"true\"' \\\n--form-string 'defaultPlaceholders={\"ph1\": \"Success\", \"ph2\": \"Example\"}' \\\n--form-string 'headers={\"List-Unsubscribe\": \"your unsubscribe link\", \"X-Custom-Header\": \"Header value\"}' \\\n--form 'notifyUrl=\"https://www.example.com/email/advanced\"' \\\n--form 'notifyContentType=\"application/json\"' \\\n--form 'trackClicks=\"true\"' \\\n--form 'trackOpens=\"false\"' \\\n--form 'trackingPixelPosition=\"TOP\"' \\\n--form 'callbackData=\"DLR callback data\"'\n--form 'ipPoolId=\"08A3A7608750CC6E6080325A6ADF45B6\"'\n" }, "Send fully featured email using Java":{ "summary":"Send fully featured email using Java", "description":"Send fully featured email using Java", "value":"\nimport org.springframework.core.io.FileSystemResource;\nimport org.springframework.http.*;\nimport org.springframework.util.LinkedMultiValueMap;\nimport org.springframework.web.client.RestTemplate;\nimport java.io.File; \n \nvar body = new LinkedMultiValueMap();\nbody.add(\"from\", \"Jane Smith \");\nbody.add(\"to\", \"john.smith@somedomain.com\");\nbody.add(\"to\", \"alice.smith@somedomain.com\");\nbody.add(\"to\", \"{\\\"to\\\": \\\"alice.grey@somecompany.com\\\", \\\"placeholders\\\": {\\\"name\\\": \\\"Alice\\\"}}\");\nbody.add(\"cc\", \"{\\\"to\\\": \\\"jane.grey@somecompany.com\\\", \\\"placeholders\\\": {\\\"name\\\": \\\"Jane\\\"}}\");\nbody.add(\"replyTo\", \"all.replies@somedomain.com\");\nbody.add(\"subject\", \"Mail subject text and placeholder ph1\");\nbody.add(\"text\", \"Dear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}\");\nbody.add(\"html\", \"

Html body

Rich HTML message body.

\");\nbody.add(\"attachment\", new FileSystemResource(new File(\"/home/user/file.zip\")));\nbody.add(\"bulkId\", \"customBulkId\");\nbody.add(\"intermediateReport\", \"true\");\nbody.add(\"defaultPlaceholders\", \"{\\\"ph1\\\": \\\"Success\\\", \\\"ph2\\\": \\\"Example\\\"}\");\nbody.add(\"headers\", \"{\\\"List-Unsubscribe\\\": \\\"your unsubscribe link\\\", \\\"X-Custom-Header\\\": \\\"Header value\\\"}\");\nbody.add(\"notifyUrl\", \"https://www.example.com/email/advanced\");\nbody.add(\"notifyContentType\", \"application/json\");\nbody.add(\"trackClicks\", \"true\");\nbody.add(\"trackOpens\", \"false\");\nbody.add(\"trackingPixelPosition\", \"TOP\");\nbody.add(\"callbackData\", \"DLR callback data\");\nbody.add(\"ipPoolId\", \"08A3A7608750CC6E6080325A6ADF45B6\");\nvar headers = new HttpHeaders();\nheaders.setContentType(MediaType.MULTIPART_FORM_DATA);\nheaders.add(\"Authorization\", \"Basic {username:password}\");\nvar entity = new HttpEntity<>(body, headers);\nvar restTemplate = new RestTemplate();\nrestTemplate.postForEntity(\"https://{base_url}/email/3/send\", entity, String.class);\n" }, "Send fully featured email - HTTP":{ "summary":"Send fully featured email - HTTP", "description":"Send fully featured email - HTTP", "value":"\nPOST /email/3/send HTTP/1.1\nHost: {base_url}\nAuthorization: Basic {username:password}\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n \n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"from\"\n \nJane Smith \n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"to\"\n \njohn.smith@somedomain.com\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"to\"\n \nalice.smith@somedomain.com\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"to\"\n \n{\"to\": \"alice.grey@somecompany.com\",\"placeholders\": {\"name\": \"Alice\"}}\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"cc\"\n\n{\"to\": \"jane.grey@somecompany.com\",\"placeholders\": {\"name\": \"Jane\"}}\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"replyTo\"\n \njack.smith@somedomain.com\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"subject\"\n \nMail subject text and placeholder ph1\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"text\"\n \nDear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"html\"\n \n

Html body

Rich HTML message body.

\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"attachment\"; filename=\"file.zip\"\n \n(data)\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"bulkId\"\n \ncustomBulkId\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"intermediateReport\"\n \ntrue\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"defaultPlaceholders\"\n \n{\"ph1\": \"Success\", \"ph2\": \"Example\"}\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"headers\"\n \n{\"List-Unsubscribe\": \"your unsubscribe link\", \"X-CustomHeader\": \"Header\"}\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"notifyUrl\"\n \nhttps://www.example.com/email/advanced\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"notifyContentType\"\n \napplication/json\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"trackClicks\"\n\ntrue\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"trackOpens\"\n\nfalse\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"trackingPixelPosition\"\n\nTOP\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"callbackData\"\n \nDLR callback data\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"ipPoolId\"\n\n08A3A7608750CC6E6080325A6ADF45B6\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\n" }, "Send fully featured email using PHP":{ "summary":"Send fully featured email using PHP", "description":"Send fully featured email using PHP", "value":"\nsetUrl('https://{base_url}/email/3/send');\n $request->setMethod(HTTP_Request2::METHOD_POST);\n $request->setConfig(array(\n 'follow_redirects' => TRUE\n ));\n $request->setHeader(array(\n 'Authorization' => 'Basic {username:password}',\n 'Content-Type' => 'multipart/form-data'\n ));\n \n $request->addPostParameter(array(\n 'from' => 'Jane Smith ',\n 'to' => ['john.smith@somedomain.com', 'alice.smith@somedomain.com', '{\"to\": \"alice.grey@somecompany.com\", \"placeholders\": {\"Name\":\"John Doe\"}}'],\n 'cc' => '{\"to\": \"jane.grey@somecompany.com\", \"placeholders\": {\"Name\":\"Jane\"}}'\n 'replyTo' => 'all.replies@somedomain.com',\n 'subject' => 'Mail subject text and placeholder ph1',\n 'text' => 'Dear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}',\n 'html' => '

Html body

Rich HTML message body.

',\n 'bulkId' => 'customBulkId',\n 'intermediateReport' => 'true',\n 'defaultPlaceholders' => '{\"ph1\": \"Success\", \"ph2\": \"Example\"}'\n 'headers' => '{\"List-Unsubscribe\": \"your unsubscribe link\", \"X-Custom-Header\": \"HeaderValue\"}'\n 'notifyUrl' => 'https://www.example.com/email/advanced',\n 'notifyContentType' => 'application/json',\n 'trackClicks' => 'true',\n 'trackOpens' => 'false',\n 'trackingPixelPosition' => 'TOP',\n 'callbackData' => 'DLR callback data',\n 'ipPoolId' => '08A3A7608750CC6E6080325A6ADF45B6'\n ));\n \n $request->addUpload('attachment', '/home/files/image.jpg', 'image.jpg', ''); \n try {\n $response = $request->send();\n if ($response->getStatus() == 200) {\n echo $response->getBody();\n } else {\n echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .\n $response->getBody();\n } \n } catch(HTTP_Request2_Exception $e) {\n echo 'Error: ' . $e->getMessage();\n }\n?>\n" }, "Send fully featured email using C#":{ "summary":"Send fully featured email using C#", "description":"Send fully featured email using C#", "value":"\nvar client = new RestClient(\"https://{base_url}/email/3/send\");\nvar request = new RestRequest(Method.POST);\nrequest.AddHeader(\"Authorization\", \"Basic {username:password}\");\nrequest.AlwaysMultipartFormData = true;\nrequest.AddParameter(\"from\", \"Jane Smith \");\nrequest.AddParameter(\"to\", \"john.smith@somedomain.com\");\nrequest.AddParameter(\"to\", \"alice.smith@somedomain.com\");\nrequest.AddParameter(\"to\", \"{\"to\": \"alice.grey@somecompany.com\", \"placeholders\": {\"name\": \"Alice\"}}\")\nrequest.AddParameter(\"cc\", \"{\"to\": \"jane.grey@somecompany.com\", \"placeholders\": {\"name\": \"Jane\"}}\")\nrequest.AddParameter(\"replyTo\", \"all.replies@somedomain.com\");\nrequest.AddParameter(\"subject\", \"Mail subject text and placeholder ph1\");\nrequest.AddParameter(\"text\", \"Dear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}\");\nrequest.AddParameter(\"html\", \"

Html body

Rich HTML message body.

\");\nrequest.AddParameter(\"attachment\", \"@files/image1.jpg\");\nrequest.AddParameter(\"bulkId\", \"customBulkId\");\nrequest.AddParameter(\"intermediateReport\", \"true\");\nrequest.AddParameter(\"defaultPlaceholders\", \"{\"ph1\": \"Success\", \"ph2\": \"Example\"}\")\nrequest.AddParameter(\"headers\", \"{\"List-Unsubscribe\": \"your unsubscribe link\", \"X-Custom-Header\": \"Header value\"}\")\nrequest.AddParameter(\"notifyUrl\", \"https://www.example.com/email/advanced\");\nrequest.AddParameter(\"notifyContentType\", \"application/json\");\nrequest.AddParameter(\"trackClicks\", \"true\");\nrequest.AddParameter(\"trackOpens\", \"false\");\nrequest.AddParameter(\"trackingPixelPosition\", \"TOP\");\nrequest.AddParameter(\"callbackData\", \"DLR callback data\");\nrequest.AddParameter(\"ipPoolId\", \"08A3A7608750CC6E6080325A6ADF45B6\");\nIRestResponse response = client.Execute(request);\nConsole.WriteLine(response.Content);\n" }, "Send fully featured email using JavaScript":{ "summary":"Send fully featured email using JavaScript", "description":"Send fully featured email using JavaScript", "value":"\nconst data = new FormData();\ndata.append(\"from\", \"Jane Smith \");\ndata.append(\"to\", \"john.smith@somedomain.com\");\ndata.append(\"to\", \"alice.smith@somedomain.com\");\ndata.append(\"to\", \"{\\\"to\\\": \\\"alice.grey@somecompany.com\\\", \\\"placeholders\\\": {\\\"name\\\": \\\"Alice\\\"}}\")\ndata.append(\"cc\", \"{\\\"to\\\": \\\"jane.grey@somecompany.com\\\", \\\"placeholders\\\": {\\\"name\\\": \\\"Jane\\\"}}\")\ndata.append(\"replyTo\", \"all.replies@somedomain.com\");\ndata.append(\"subject\", \"Mail subject text and placeholder ph1\");\ndata.append(\"text\", \"Dear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}\");\ndata.append(\"html\", \"

Html body

Rich HTML message body.

\");\ndata.append(\"attachment\", \"@files/image1.jpg\");\ndata.append(\"bulkId\", \"customBulkId\");\ndata.append(\"intermediateReport\", \"true\");\ndata.append(\"defaultPlaceholders\", \"{\\\"ph1\\\": \\\"Success\\\", \\\"ph2\\\": \\\"Example\\\"}\")\ndata.append(\"headers\", \"{\\\"List-Unsubscribe\\\": \\\"your unsubscribe link\\\", \\\"X-Custom-Header\\\": \\\"Header value\\\"}\")\ndata.append(\"notifyUrl\", \"https://www.example.com/email/advanced\");\ndata.append(\"notifyContentType\", \"application/json\");\ndata.append(\"trackClicks\", \"true\");\ndata.append(\"trackOpens\", \"false\");\ndata.append(\"trackingPixelPosition\", \"TOP\");\ndata.append(\"callbackData\", \"DLR callback data\");\ndata.append(\"ipPoolId\", \"08A3A7608750CC6E6080325A6ADF45B6\");\n\nconst xhr = new XMLHttpRequest();\nxhr.withCredentials = true;\n\nxhr.addEventListener(\"readystatechange\", function() {\n if (this.readyState === 4) {\n console.log(this.responseText);\n }\n});\n\nxhr.open(\"POST\", \"https://{{baseUrl}}}}/email/3/send\");\nxhr.setRequestHeader(\"Authorization\", \"Basic {username:password}\");\nxhr.send(data);\n" }, "Send fully featured email using Python":{ "summary":"Send fully featured email using Python", "description":"Send fully featured email using Python", "value":"\nimport requests\nimport json\n \nurl = 'https://{base_url}/email/3/send'\nheaders = {'Authorization': 'Basic {username:password}'}\n \nfile = open('files/image1.jpg', 'rb')\nfiles = {'attachment': ('image1.jpg', file)}\n \ndata = {\n 'from': 'Jane Smith ',\n 'to': [\n 'john.smith@somedomain.com',\n 'alice.smith@somedomain.com',\n json.dumps({\n 'to': 'alice.grey@somecompany.com',\n 'placeholders': {'name': 'Alice'}\n })\n ],\n 'cc': json.dumps({\n 'to': 'jane.grey@somecompany.com',\n 'placeholders': {'name': 'Jane'}\n }),\n 'replyTo': 'all.replies@somedomain.com',\n 'subject': 'Mail subject text and placeholder ph1',\n 'text': 'Dear {{name}}, this is mail body text with placeholders in body {{ph1}} and {{ph2}}',\n 'html': '

Html body

Rich HTML message body.

',\n 'attachment': '@/files/image1.jpg',\n 'bulkId': 'customBulkId',\n 'intermediateReport': 'true',\n 'defaultPlaceholders': '{\"ph1\": \"Success\", \"ph2\": \"Example\"}',\n 'headers': '{\"List-Unsubscribe\": \"your unsubscribe link\", \"X-CustomHeader\": \"Header value\"}',\n 'notifyUrl': 'https://www.example.com/email/advanced',\n 'notifyContentType': 'application/json',\n 'trackClicks': true,\n 'trackOpens': false,\n 'trackingPixelPosition': 'TOP',\n 'callbackData': 'DLR callback data'\n 'ipPoolId': '08A3A7608750CC6E6080325A6ADF45B6'\n}\n\nresponse = requests.post(url, headers=headers, data=data, files=files)\nfile.close()\nprint(response.text)\n" } } } } }, "responses":{ "200":{ "description":"Successful Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SendResponse" }, "examples":{ "Example for single message":{ "summary":"Example for single message", "description":"Example for single message", "value":{ "bulkId":"snxemd8u52v7v84iiu69", "messages":[ { "to":"john.smith@somecompany.com", "messageId":"jgzra46v9zi1ztvd62t5", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } } ] } }, "Example for single message with custom ID":{ "summary":"Example for single message with custom ID", "description":"Example for single message with custom ID", "value":{ "bulkId":"customBulkId", "messages":[ { "to":"john.smith@somecompany.com", "messageId":"jgzra46v9zi1ztvd62t5", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } } ] } }, "Example for multiple message":{ "summary":"Example for multiple message", "description":"Example for multiple message", "value":{ "bulkId":"4pk1xihiy4rln2f1g2se", "messages":[ { "to":"john.smith@somecompany.com", "messageId":"tu5k6tdo7df1bpgk7ggs", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } }, { "to":"jane.doe@somecompany.com", "messageId":"e7zzb1v9yirml2se9zo4", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } } ] } } } } } }, "400":{ "$ref":"#/components/responses/ApiException400" }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-additional-throttling-information":{ "Learn more about custom throttling limits":"https://www.infobip.com/docs/api" }, "x-scopes":[ "message:send", "email:message:send", "email:manage" ], "x-additionalInfo":{ "markdown":"### Related\n- [Send email via SMTP API](https://www.infobip.com/docs/email/smtp-specification)\n- [Setup sender domain](https://www.infobip.com/docs/email/get-started#manage-domain-settings-register-a-new-domain)\n- [Tracking Notifications](https://www.infobip.com/docs/email/send-email-over-api#tracking-notifications)\n" }, "x-throttling-info":[ { "type":"time", "numberOfRequests":4000, "numberOfTimeUnits":0, "timeUnit":"s" } ], "x-versions":[ { "versionNumber":4, "latest":true, "operationId":"send-email-messages-api" }, { "versionNumber":3, "latest":false, "operationId":"send-fully-featured-email" } ] } }, "/email/4/mime":{ "post":{ "tags":[ "channels", "email", "email-message-sending" ], "summary":"Send MIME email", "description":"Send an email where you can specify the content as MIME message.", "operationId":"send-mime-email", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SendMimeRequestSchema" }, "examples":{ "Example request with mimeMessage as a base64-encoded MIME string containing HTML, text, and single To recipient.":{ "summary":"Send email with single recipient using MIME", "description":"Example request with mimeMessage as a base64-encoded MIME string containing HTML, text, and single To recipient.", "value":{ "messageId":"requestMessageId", "from":"jenny.smith@company.com", "destinations":[ "john.smith@company" ], "mimeMessage":"RGF0ZTogV2VkLCAxOCBKdW4gMjAyNSAxMjo0ODoyMyArMDIwMCAoQ0VTVCkNCkZyb206IGplbm55LnNtaXRoQGNvbXBhbnkuY29tDQpUbzogam9obi5zbWl0aEBjb21wYW55LmNvbQ0KTWVzc2FnZS1JRDogPG1lc3NhZ2VAaWQ+DQpTdWJqZWN0OiBUaGlzIGlzIHN1YmplY3QNCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgDQoJYm91bmRhcnk9Ii0tLS09X1BhcnRfMF8xNDkzMzcyMS4xNzUwMjQzNzAzMTY0Ig0KWC1JQi1idWxrLWlkOiBkZWZhdWx0QnVsa0lkDQoNCi0tLS0tLT1fUGFydF8wXzE0OTMzNzIxLjE3NTAyNDM3MDMxNjQNCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQ0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdA0KDQpIZWxsbyB3b3JsZA0KLS0tLS0tPV9QYXJ0XzBfMTQ5MzM3MjEuMTc1MDI0MzcwMzE2NA0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkNCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQNCg0KPGRpdj5IZWxsbyB3b3JsZDwvZGl2Pg0KLS0tLS0tPV9QYXJ0XzBfMTQ5MzM3MjEuMTc1MDI0MzcwMzE2NC0tDQo=" } }, "Example request with mimeMessage as a base64-encoded MIME string containing HTML, text, and multiple To recipients.":{ "summary":"Send email with multiple recipients using MIME", "description":"Example request with mimeMessage as a base64-encoded MIME string containing HTML, text, and multiple To recipients.", "value":{ "messageId":"requestMessageId", "from":"jenny.smith@company.com", "destinations":[ "john.smith@company", "mike.smith@company" ], "mimeMessage":"RGF0ZTogV2VkLCAxOCBKdW4gMjAyNSAxMjo1MTo1NiArMDIwMCAoQ0VTVCkNCkZyb206IGplbm55LnNtaXRoQGNvbXBhbnkuY29tDQpUbzogam9obi5zbWl0aEBjb21wYW55LmNvbSwgbWlrZS5zbWl0aEBjb21wYW55LmNvbQ0KTWVzc2FnZS1JRDogPG1lc3NhZ2VAaWQ+DQpTdWJqZWN0OiBUaGlzIGlzIHN1YmplY3QNCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgDQoJYm91bmRhcnk9Ii0tLS09X1BhcnRfMF85NDM3NDk5MDIuMTc1MDI0MzkxNjE1NyINClgtSUItYnVsay1pZDogZGVmYXVsdEJ1bGtJZA0KDQotLS0tLS09X1BhcnRfMF85NDM3NDk5MDIuMTc1MDI0MzkxNjE1Nw0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0DQoNCkhlbGxvIHdvcmxkDQotLS0tLS09X1BhcnRfMF85NDM3NDk5MDIuMTc1MDI0MzkxNjE1Nw0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkNCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQNCg0KPGRpdj5IZWxsbyB3b3JsZDwvZGl2Pg0KLS0tLS0tPV9QYXJ0XzBfOTQzNzQ5OTAyLjE3NTAyNDM5MTYxNTctLQ0K" } }, "Example request with mimeMessage as a base64-encoded MIME string containing HTML, text, attachments and To, Cc and Bcc recipients.":{ "summary":"Send email with multiple recipients using complex MIME", "description":"Example request with mimeMessage as a base64-encoded MIME string containing HTML, text, attachments and To, Cc and Bcc recipients.", "value":{ "messageId":"requestMessageId", "from":"jenny.smith@company.com", "destinations":[ "john.smith@company", "mike.smith@company", "jenny.smith@company" ], "mimeMessage":"RGF0ZTogV2VkLCAxOCBKdW4gMjAyNSAxMjo1NTozNiArMDIwMCAoQ0VTVCkKRnJvbTogamVubnkuc21pdGhAY29tcGFueS5jb20KVG86IGpvaG4uc21pdGhAY29tcGFueS5jb20KQ2M6IG1pa2Uuc21pdGhAY29tcGFueS5jb20KQmNjOiBqZW5ueS5zbWl0aEBjb21wYW55Ck1lc3NhZ2UtSUQ6IDxtZXNzYWdlQGlkPgpTdWJqZWN0OiBUaGlzIGlzIHN1YmplY3QKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7CiBib3VuZGFyeT0iLS0tLT1fUGFydF8wXzY1OTQ5NDU5OS4xNzUwMjQ0MTM1OTg0IgpYLUlCLWJ1bGstaWQ6IGRlZmF1bHRCdWxrSWQKCi0tLS0tLT1fUGFydF8wXzY1OTQ5NDU5OS4xNzUwMjQ0MTM1OTg0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CgpIZWxsbyB3b3JsZAoKLS0tLS0tPV9QYXJ0XzBfNjU5NDk0NTk5LjE3NTAyNDQxMzU5ODQKQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKPGRpdj5IZWxsbyB3b3JsZCA8aW1nIHNyYz0iY2lkOmltYWdlXzEiLz4gPC9kaXY+CgotLS0tLS09X1BhcnRfMF82NTk0OTQ1OTkuMTc1MDI0NDEzNTk4NApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWk7IG5hbWU9YXR0YWNobWVudF8xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NApDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1hdHRhY2htZW50XzEKClZHaHBjeUJwY3lCaGRIUmhZMmh0Wlc1MElHUmhkR0U9CgoKLS0tLS0tPV9QYXJ0XzBfNjU5NDk0NTk5LjE3NTAyNDQxMzU5ODQKQ29udGVudC1UeXBlOiBpbWFnZS9qcGVnCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NApDb250ZW50LUlEOiBpbWFnZV8xCgpWR2hwY3lCcGN5QmhkSFJoWTJodFpXNTBJR1JoZEdFPQoKLS0tLS0tPV9QYXJ0XzBfNjU5NDk0NTk5LjE3NTAyNDQxMzU5ODQtLQ==" } } } } } }, "responses":{ "200":{ "description":"Successful Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SendResponse" }, "examples":{ "Example for single message":{ "summary":"Example for single message", "description":"Example for single message", "value":{ "bulkId":"snxemd8u52v7v84iiu69", "messages":[ { "to":"john.smith@somecompany.com", "messageId":"jgzra46v9zi1ztvd62t5", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } } ] } }, "Example for single message with custom ID":{ "summary":"Example for single message with custom ID", "description":"Example for single message with custom ID", "value":{ "bulkId":"customBulkId", "messages":[ { "to":"john.smith@somecompany.com", "messageId":"jgzra46v9zi1ztvd62t5", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } } ] } }, "Example for multiple message":{ "summary":"Example for multiple message", "description":"Example for multiple message", "value":{ "bulkId":"4pk1xihiy4rln2f1g2se", "messages":[ { "to":"john.smith@somecompany.com", "messageId":"tu5k6tdo7df1bpgk7ggs", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } }, { "to":"jane.doe@somecompany.com", "messageId":"e7zzb1v9yirml2se9zo4", "status":{ "groupId":1, "groupName":"PENDING", "id":26, "name":"PENDING_ACCEPTED", "description":"Message accepted, pending for delivery." } } ] } } } } } }, "400":{ "$ref":"#/components/responses/ApiException400" }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-additional-throttling-information":{ "Learn more about custom throttling limits":"https://www.infobip.com/docs/api" }, "x-scopes":[ "message:send", "email:message:send", "email:manage" ], "x-additionalInfo":{ "markdown":"### Related\n- [Send email via SMTP API](https://www.infobip.com/docs/email/smtp-specification)\n- [Setup sender domain](https://www.infobip.com/docs/email/get-started#manage-domain-settings-register-a-new-domain)\n- [Tracking Notifications](https://www.infobip.com/docs/email/send-email-over-api#tracking-notifications)\n" }, "x-throttling-info":[ { "type":"time", "numberOfRequests":4000, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/bulks":{ "get":{ "tags":[ "channels", "email", "scheduled-email" ], "summary":"Get scheduled bulks", "description":"See the scheduled time of your Email messages.", "operationId":"get-scheduled-emails", "parameters":[ { "name":"bulkId", "in":"query", "description":"The ID that uniquely identifies the sent bulk.", "required":true, "style":"form", "explode":true, "schema":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk." }, "example":{ "sendAt":"2025-12-01T15:00:00.000Z" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkScheduleResponse" }, "examples":{ "Get sent email bulks response - single bulk":{ "summary":"Get sent email bulks response - single bulk", "description":"Get sent email bulks response - single bulk", "value":{ "externalBulkId":"BULK-ID-123-xyz", "bulks":[ { "bulkId":"2033247207450906897", "sendAt":"2025-12-01T12:00:00.000+0000" } ] } }, "Get sent email bulks response - multiple bulks":{ "summary":"Get sent email bulks response - multiple bulks", "description":"Get sent email bulks response - multiple bulks", "value":{ "externalBulkId":"BULK-ID-123-xyz", "bulks":[ { "bulkId":"2033247207450906897", "sendAt":"2025-12-01T12:00:00.000+0000" }, { "bulkId":"2033247207450906898", "sendAt":"2025-12-01T14:00:00.000+0000" }, { "bulkId":"2033247207450906899", "sendAt":"2025-12-01T16:00:00.000+0000" } ] } } } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "requestError":{ "serviceException":{ "messageId":"NOT_FOUND", "text":"Bulk not found" } } } } } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:message:send" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"m" } ] }, "put":{ "tags":[ "channels", "email", "scheduled-email" ], "summary":"Reschedule messages", "description":"Change the date and time for sending scheduled messages.", "operationId":"reschedule-emails", "parameters":[ { "name":"bulkId", "in":"query", "description":"The ID that uniquely identifies the sent bulk.", "required":true, "style":"form", "explode":true, "schema":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk." }, "example":"BULK-ID-123-xyz" } ], "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkRescheduleRequest" }, "examples":{ "Reschedule email bulk request":{ "summary":"Reschedule email bulk request", "description":"Reschedule email bulk request", "value":{ "sendAt":"2025-12-01T15:00:00.000Z" } } } } }, "required":true }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkRescheduleResponse" }, "examples":{ "Reschedule email bulk response":{ "summary":"Reschedule email bulk response", "description":"Reschedule email bulk response", "value":{ "bulkId":"2033247207450906897", "sendAt":"2025-12-01T15:00:00.000+0000" } } } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "requestError":{ "serviceException":{ "messageId":"NOT_FOUND", "text":"Bulk not found" } } } } } } } }, "409":{ "description":"Conflict", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "requestError":{ "serviceException":{ "messageId":"CONFLICT", "text":"Update not allowed for bulk" } } } } } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"m" } ] } }, "/email/1/bulks/status":{ "get":{ "tags":[ "channels", "email", "scheduled-email" ], "summary":"Get scheduled bulk statuses", "description":"See the status of scheduled email messages.", "operationId":"get-scheduled-email-statuses", "parameters":[ { "name":"bulkId", "in":"query", "description":"The ID that uniquely identifies the sent bulk.", "required":true, "style":"form", "explode":true, "schema":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk." }, "example":"BULK-ID-123-xyz" } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatusResponse" }, "examples":{ "Get bulk status response - paused":{ "summary":"Get bulk status response - paused", "description":"Get bulk status response - paused", "value":{ "externalBulkId":"BULK-ID-123-xyz", "bulks":[ { "bulkId":"2033247207450906897", "status":"PAUSED" } ] } }, "Get bulk status response - canceled":{ "summary":"Get bulk status response - canceled", "description":"Get bulk status response - canceled", "value":{ "externalBulkId":"BULK-ID-123-xyz", "bulks":[ { "bulkId":"2033247207450906897", "status":"CANCELED" } ] } } } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "requestError":{ "serviceException":{ "messageId":"NOT_FOUND", "text":"Bulk not found" } } } } } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:message:send" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"m" } ] }, "put":{ "tags":[ "channels", "email", "scheduled-email" ], "summary":"Update scheduled message statuses", "description":"Change status or completely cancel sending of scheduled messages.", "operationId":"update-scheduled-email-statuses", "parameters":[ { "name":"bulkId", "in":"query", "description":"The ID that uniquely identifies the sent bulk.", "required":true, "style":"form", "explode":true, "schema":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk." }, "example":"BULK-ID-123-xyz" } ], "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkUpdateStatusRequest" }, "examples":{ "Update bulk status request - pause":{ "summary":"Update bulk status request - pause", "description":"Update bulk status request - pause", "value":{ "status":"PAUSED" } }, "Update bulk status request - cancel":{ "summary":"Update bulk status request - cancel", "description":"Update bulk status request - cancel", "value":{ "status":"CANCELED" } } } } }, "required":true }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkUpdateStatusResponse" }, "examples":{ "Update bulk status response - paused":{ "summary":"Update bulk status response - paused", "description":"Update bulk status response - paused", "value":{ "bulkId":"BULK-ID-123-xyz", "status":"PAUSED" } }, "Update bulk status response - canceled":{ "summary":"Update bulk status response - canceled", "description":"Update bulk status response - canceled", "value":{ "bulkId":"BULK-ID-123-xyz", "status":"CANCELED" } } } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "requestError":{ "serviceException":{ "messageId":"NOT_FOUND", "text":"Bulk not found" } } } } } } } }, "409":{ "description":"Conflict", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "requestError":{ "serviceException":{ "messageId":"CONFLICT", "text":"Update not allowed for bulk" } } } } } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"m" } ] } }, "/email/4/logs":{ "get":{ "tags":[ "channels", "email", "email-logs-and-reports" ], "summary":"Get email message logs", "description":"Use this method for displaying logs for example in the user interface. Available are the logs for the last 48 hours.", "operationId":"get-email-message-logs", "parameters":[ { "name":"sender", "in":"query", "description":"The sender ID which can be alphanumeric or numeric.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"destination", "in":"query", "description":"Message destination address.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"bulkId", "in":"query", "description":"Unique ID assigned to the request if messaging multiple recipients or sending multiple messages via a single API request. May contain multiple comma-separated values. Maximum length 2048 characters.", "required":false, "style":"form", "explode":true, "schema":{ "type":"array", "items":{ "type":"string" } }, "example":"BULK-ID-123-xyz" }, { "name":"messageId", "in":"query", "description":"Unique message ID for which a log is requested. May contain multiple comma-separated values. Maximum length 2048 characters.", "required":false, "style":"form", "explode":true, "schema":{ "type":"array", "items":{ "type":"string" } }, "example":"MESSAGE-ID-123-xyz,MESSAGE-ID-124-xyz" }, { "name":"generalStatus", "in":"query", "required":false, "style":"form", "explode":true, "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageGeneralStatus" } }, { "name":"sentSince", "in":"query", "description":"The logs will only include messages sent after this date. Use it alongside sentUntil to specify a time range for the logs, but only up to the maximum limit of 1000 logs per call. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time" }, "example":"2020-02-22T17:42:05.390+01:00" }, { "name":"sentUntil", "in":"query", "description":"The logs will only include messages sent before this date. Use it alongside sentSince to specify a time range for the logs, but only up to the maximum limit of 1000 logs per call. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time", "description":"The logs will only include messages sent before this date. Use it alongside sentSince to specify a time range for the logs, but only up to the maximum limit of 1000 logs per call. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ.", "example":"2020-02-23T17:42:05.39+01:00" }, "example":"2020-02-23T17:42:05.390+01:00" }, { "name":"limit", "in":"query", "description":"Maximum number of messages to include in logs. If not set, the latest 50 records are returned. Maximum limit value is 1000 and you can only access logs for the last 48h.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":50, "maximum":1000 } }, { "name":"entityId", "in":"query", "description":"Entity id used to send the message. For more details, see our [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" }, "example":"promotional-traffic-entity" }, { "name":"applicationId", "in":"query", "description":"Application id used to send the message. For more details, see our [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" }, "example":"marketing-automation-application" }, { "name":"campaignReferenceId", "in":"query", "description":"ID of a campaign that was sent in the message. May contain multiple comma-separated values.", "required":false, "style":"form", "explode":true, "schema":{ "type":"array", "items":{ "type":"string" } }, "example":"summersale" }, { "name":"useCursor", "in":"query", "description":"Flag used to enable cursor-based pagination. When set to true, the system will use the cursor to fetch the next set of logs.", "required":false, "style":"form", "explode":true, "schema":{ "type":"boolean" } }, { "name":"cursor", "in":"query", "description":"Value which represents the current position in the data set. For the first request, this field shouldn't be defined. In subsequent requests, use the `nextCursor` value returned from the previous response to continue fetching data.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.LogResponseEmailUnificationLog" } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:logs:read" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":120, "numberOfTimeUnits":0, "timeUnit":"m" } ], "x-versions":[ { "versionNumber":4, "latest":true, "operationId":"get-email-message-logs" }, { "versionNumber":1, "latest":false, "operationId":"get-email-logs" } ] } }, "/email/4/reports":{ "get":{ "tags":[ "channels", "email", "email-logs-and-reports" ], "summary":"Get email delivery reports", "description":"Get one-time delivery reports for all sent emails.", "externalDocs":{ "description":"Learn more about EMAIL channel and use cases", "url":"https://www.infobip.com/docs/email" }, "operationId":"get-outbound-email-message-delivery-reports", "parameters":[ { "name":"bulkId", "in":"query", "description":"The ID that uniquely identifies the request.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"messageId", "in":"query", "description":"The ID that uniquely identifies the message sent.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"limit", "in":"query", "description":"Maximum number of delivery reports to be returned. If not set, the latest 50 records are returned. Maximum limit value is 1000 and you can only access reports for the last 48h.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":50, "maximum":1000 }, "example":1 }, { "name":"entityId", "in":"query", "description":"Entity id used to send the message. For more details, see our [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" }, "example":"promotional-traffic-entity" }, { "name":"applicationId", "in":"query", "description":"Application id used to send the message. For more details, see our [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" }, "example":"marketing-automation-application" }, { "name":"campaignReferenceId", "in":"query", "description":"ID of a campaign that was sent in the message.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" }, "example":"summersale" } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailDeliveryReports" } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "message:send", "email:message:send", "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":120, "numberOfTimeUnits":0, "timeUnit":"m" } ], "x-versions":[ { "versionNumber":4, "latest":true, "operationId":"get-outbound-email-message-delivery-reports" }, { "versionNumber":1, "latest":false, "operationId":"get-email-delivery-reports" } ] } }, "/email/1/logs":{ "get":{ "tags":[ "channels", "email", "email-logs-and-reports" ], "summary":"Get email message logs", "description":"This method allows you to get logs for sent emails using their messageId. Email logs are available for the last 48 hours.", "operationId":"get-email-logs", "parameters":[ { "name":"messageId", "in":"query", "description":"The ID that uniquely identifies the sent email.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"from", "in":"query", "description":"From email address.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"to", "in":"query", "description":"The recipient email address.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"bulkId", "in":"query", "description":"Bulk ID that uniquely identifies the request.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"campaignReferenceId", "in":"query", "description":"The ID that allows you to track, analyze, and show an aggregated overview and the performance of individual campaigns.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"generalStatus", "in":"query", "description":"Indicates whether the initiated email has been successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"sentSince", "in":"query", "description":"Tells when the email was initiated. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time", "example":"2021-01-02T01:00:00.123Z" } }, { "name":"sentUntil", "in":"query", "description":"Tells when the email request was processed by Infobip.Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time", "example":"2021-01-02T01:00:00.123Z" } }, { "name":"limit", "in":"query", "description":"Maximum number of logs.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "maximum":1000 } }, { "name":"applicationId", "in":"query", "description":"[Application](https://www.infobip.com/docs/cpaas-x/application-and-entity-management#application) identifier used for filtering.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"entityId", "in":"query", "description":"[Entity](https://www.infobip.com/docs/cpaas-x/application-and-entity-management#entity) identifier used for filtering.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailLogResponse" } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:logs:read", "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":60, "numberOfTimeUnits":0, "timeUnit":"m" } ], "x-versions":[ { "versionNumber":4, "latest":true, "operationId":"get-email-message-logs" }, { "versionNumber":1, "latest":false, "operationId":"get-email-logs" } ] } }, "/email/1/reports":{ "get":{ "tags":[ "channels", "email", "email-logs-and-reports" ], "summary":"Get email delivery reports", "description":"Get one-time delivery reports for all sent emails.", "operationId":"get-email-delivery-reports", "parameters":[ { "name":"bulkId", "in":"query", "description":"Bulk ID for which report is requested.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"messageId", "in":"query", "description":"The ID that uniquely identifies the sent email.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"campaignReferenceId", "in":"query", "description":"The ID that allows you to track, analyze, and show an aggregated overview and the performance of individual campaigns.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"limit", "in":"query", "description":"Maximum number of reports.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "maximum":1000 } }, { "name":"applicationId", "in":"query", "description":"[Application](https://www.infobip.com/docs/cpaas-x/application-and-entity-management#application) identifier used for filtering.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } }, { "name":"entityId", "in":"query", "description":"[Entity](https://www.infobip.com/docs/cpaas-x/application-and-entity-management#entity) identifier used for filtering.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ApiReportsResponse" } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "message:send", "email:message:send", "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":60, "numberOfTimeUnits":0, "timeUnit":"m" } ], "x-versions":[ { "versionNumber":4, "latest":true, "operationId":"get-outbound-email-message-delivery-reports" }, { "versionNumber":1, "latest":false, "operationId":"get-email-delivery-reports" } ] } }, "/email/2/validation":{ "post":{ "tags":[ "channels", "email", "email-validation" ], "summary":"Validate email address", "description":"This method lets you request validation of a single email address in real-time,\nhelping you to identify and remove poor-quality emails from your list.\n", "operationId":"validate-email-addresses", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationRequest" }, "examples":{ "Request example":{ "summary":"Request example", "value":{ "to":"john.smith@example.com" } } } }, "application/x-www-form-urlencoded":{ "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationRequest" }, "examples":{ "Request example":{ "summary":"Request example", "value":"curl -s --user user:password https://{base_url}/email/2/validation --data-urlencode 'to=john.smith@example.com'" } } } } }, "responses":{ "200":{ "description":"Successful response", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationResponse" }, "examples":{ "Valid email box response":{ "summary":"Valid email box response", "description":"Valid email box response", "value":{ "to":"john.smith@example.com", "validMailbox":"true", "validSyntax":true, "catchAll":false, "disposable":false, "roleBased":false, "risk":"LOW" } }, "Invalid email box response":{ "summary":"Invalid email box response", "description":"Invalid email box response", "value":{ "to":"jane.smith@example.com", "validMailbox":"false", "validSyntax":true, "catchAll":false, "disposable":false, "roleBased":false, "detailedReasons":"known_hardbounce", "risk":"HIGH" } }, "Mailbox is unknown response":{ "summary":"Mailbox is unknown response", "description":"Mailbox is unknown response", "value":{ "to":"john.doe@example.org", "validMailbox":"unknown", "validSyntax":true, "catchAll":false, "disposable":false, "roleBased":false, "reason":"INBOX_FULL", "detailedReasons":"mailbox_full", "risk":"HIGH" } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationResponse" }, "examples":{ "Valid email box response":{ "summary":"Valid email box response", "description":"Valid email box response", "value":"\n \n john.smith@example.com\n \n true\n \n true\n \n false\n \n false\n \n false\n \n LOW\n \n\n" }, "Invalid email box response":{ "summary":"Invalid email box response", "description":"Invalid email box response", "value":"\n \n jane.smith@example.com\n \n false\n \n true\n \n false\n \n false\n \n false\n \n known_hardbounce\n \n HIGH\n \n\n" }, "Mailbox is unknown response":{ "summary":"Mailbox is unknown response", "description":"Mailbox is unknown response", "value":"\n \n john.doe@example.org\n \n unknown\n \n true\n \n false\n \n false\n \n false\n \n INBOX_FULL\n \n mailbox_full\n \n HIGH\n \n\n" } } } } }, "400":{ "description":"Bad request response", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/febb9d147c03fd2fbfd3c2210892c186364d60568040914121c07343344b284b.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/febb9d147c03fd2fbfd3c2210892c186364d60568040914121c07343344b284b.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":"\n \n \n BAD_REQUEST\n Bad request\n \n \n\n" } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":150, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/2/validations":{ "get":{ "tags":[ "channels", "email", "email-validation" ], "summary":"Get email validations", "description":"This method lets you review and analyze the outcomes of your\nsubmitted bulk email validations to gain insights into the quality of your email list.\n", "operationId":"get-validations", "parameters":[ { "name":"validationRequestId", "in":"query", "description":"Unique identifier for the bulk email validation request. Provide your own or leave it blank to have one generated automatically.\n", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "description":"Unique identifier for the bulk email validation request. Provide your own or leave it blank to have one generated automatically.\n", "example":"2034072219640523072", "maxLength":200, "minLength":0 }, "example":2034072219640523072 }, { "name":"destination", "in":"query", "required":false, "style":"form", "explode":true, "schema":{ "type":"array", "description":"The email addresses to search.", "items":{ "type":"string", "example":"[\"john.smith@example.org\",\"jane.doe@example.org\"]", "maxLength":320, "minLength":1 }, "maxItems":100, "minItems":0 } }, { "name":"validMailbox", "in":"query", "description":"Indicates whether email address is valid.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "description":"Indicates whether email address is valid.", "example":"true", "pattern":"^(true|false|unknown)$" }, "example":true }, { "name":"validSyntax", "in":"query", "description":"Indicates whether email address syntax is valid.", "required":false, "style":"form", "explode":true, "schema":{ "type":"boolean", "description":"Indicates whether email address syntax is valid.", "example":true }, "example":true }, { "name":"catchAll", "in":"query", "description":"Indicates catch all status of email address.", "required":false, "style":"form", "explode":true, "schema":{ "type":"boolean", "description":"Indicates catch all status of email address.", "example":false }, "example":false }, { "name":"disposable", "in":"query", "description":"Indicates whether email address is disposable.\nA disposable email address is a temporary address that is often used for short-term purposes and can be discarded after use.\n", "required":false, "style":"form", "explode":true, "schema":{ "type":"boolean", "description":"Indicates whether email address is disposable.\nA disposable email address is a temporary address that is often used for short-term purposes and can be discarded after use.\n", "example":false }, "example":false }, { "name":"roleBased", "in":"query", "description":"Indicates whether email address is role-based.\nA role-based email address is one that is associated with a specific function or group within an organization,\nsuch as marketing@example.org, rather than an individual person.\n", "required":false, "style":"form", "explode":true, "schema":{ "type":"boolean", "description":"Indicates whether email address is role-based.\nA role-based email address is one that is associated with a specific function or group within an organization,\nsuch as marketing@example.org, rather than an individual person.\n", "example":false }, "example":false }, { "name":"risk", "in":"query", "required":false, "style":"form", "explode":true, "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ApiRisk" }, "example":"LOW" }, { "name":"validatedDateFrom", "in":"query", "description":"Start date for searching validations.\nIf not specified, defaults to 7 days before the current date.\nThe date cannot be more than 1 month in the past.\n", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time", "description":"Start date for searching validations.\nIf not specified, defaults to 7 days before the current date.\nThe date cannot be more than 1 month in the past.\n", "example":"2025-03-01T12:03:15.12Z" }, "example":"2025-03-01T12:03:15.120Z" }, { "name":"validatedDateTo", "in":"query", "description":"End date for searching validations.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time", "description":"End date for searching validations.", "example":"2025-03-04T15:02:11.4Z" }, "example":"2025-03-04T15:02:11.400Z" }, { "name":"cursor", "in":"query", "description":"A pagination token for navigating through bulk email validation results.\nInitially empty, it updates with each API response to fetch the next set of results, ensuring efficient data retrieval.\n", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "description":"A pagination token for navigating through bulk email validation results.\nInitially empty, it updates with each API response to fetch the next set of results, ensuring efficient data retrieval.\n", "example":"A1F3B5C7D9E2F4A6B8C0D1E3F5A7B9C1D3E5F7A9B2C4D6E8F0A1B3C5D7E9F2A4" }, "example":"A1F3B5C7D9E2F4A6B8C0D1E3F5A7B9C1D3E5F7A9B2C4D6E8F0A1B3C5D7E9F2A4" }, { "name":"size", "in":"query", "description":"Number of records per page.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":100, "description":"Number of records per page.", "example":100, "maximum":1000, "minimum":1 }, "example":100 } ], "responses":{ "200":{ "description":"Successful response", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.GetValidationPageResponse" }, "examples":{ "Get validations response":{ "summary":"Get validations response", "value":{ "results":[ { "destination":"john.smith@example.org", "validMailbox":"true", "validSyntax":true, "catchAll":false, "disposable":true, "roleBased":false, "risk":"HIGH", "detailedReasons":"disposable_address", "bulkValidationDate":"2025-03-01T12:02:15.100Z", "validationRequestId":"2034072219640523072" }, { "destination":"john.doe@example.org", "validMailbox":"true", "validSyntax":true, "catchAll":false, "disposable":false, "roleBased":false, "risk":"LOW", "bulkValidationDate":"2025-03-01T13:03:05.500Z", "validationRequestId":"2034072219640523072" } ], "paging":{ "size":100, "previousCursor":"A1F3B5C7D9E2F4A6B8C0D1E3F5A7B9C1D3E5F7A9B2C4D6E8F0A1B3C5D7E9F2A4", "nextCursor":"B78918C36BB3BDCB194C0DFD2C2FBB8F7D098E56E8B5D8699997CD97A049D739" } } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "post":{ "tags":[ "channels", "email", "email-validation" ], "summary":"Validate email addresses", "description":"This method lets you request a bulk email address validation,\nhelping you to detect low-quality emails and tidy up your recipient list.\n", "operationId":"request-validations", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ApiBulkRequest" }, "examples":{ "Post validations request":{ "summary":"Post validations request", "value":{ "validationRequestId":"2034072219640523072", "destinations":[ { "destination":"john.smith@example.org" }, { "destination":"jane.doe@example.org" } ] } } } } }, "required":true }, "responses":{ "202":{ "description":"Accepted", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.BulkResponse" }, "examples":{ "Post validations response":{ "summary":"Post validations response", "value":{ "validationRequestId":"2034072219640523072" } } } } } }, "400":{ "$ref":"#/components/responses/ApiError400" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/domains":{ "get":{ "tags":[ "channels", "email", "email-domains" ], "summary":"Get domains", "description":"This API is to get all domain associated with the account. It also provides details of the retrieved domain like the DNS records, Tracking details, Active/Blocked status,etc.", "operationId":"get-all-domains", "parameters":[ { "name":"size", "in":"query", "description":"Maximum number of domains to be viewed per page. Default value is 10 with a maximum of 20 records per page.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "default":10, "maximum":20, "minimum":1 } }, { "name":"page", "in":"query", "description":"Page number you want to see. Default is 0.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "default":0, "minimum":0 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.AllDomainsResponse" } } } }, "400":{ "description":"Bad Request.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:message:send" ], "x-throttling-info":[ { "type":"token", "replenishRate":1, "requestedTokens":1, "burstCapacity":5 } ] }, "post":{ "tags":[ "channels", "email", "email-domains" ], "summary":"Add domain", "description":"This method allows you to add new domains with a limit to create a maximum of 1000 domains in a day.", "operationId":"add-domain", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.AddDomainRequest" } } }, "required":true }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DomainResponse" } } } }, "400":{ "description":"Bad Request.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "409":{ "description":"Domain already exists.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"token", "replenishRate":1, "requestedTokens":1, "burstCapacity":5 } ] } }, "/email/1/domains/{domainName}":{ "get":{ "tags":[ "channels", "email", "email-domains" ], "summary":"Get domain details", "description":"This API provides with the details of the domain like the DNS records, Tracking details, Active/Blocked status,etc.", "operationId":"get-domain-details", "parameters":[ { "name":"domainName", "in":"path", "description":"Domain for which the details need to be viewed.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DomainResponse" } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "description":"Requested domain does not exist.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:message:send" ], "x-throttling-info":[ { "type":"token", "replenishRate":1, "requestedTokens":1, "burstCapacity":5 } ] }, "delete":{ "tags":[ "channels", "email", "email-domains" ], "summary":"Delete domain", "description":"This method allows you to delete an existing domain.", "operationId":"delete-domain", "parameters":[ { "name":"domainName", "in":"path", "description":"Domain name which needs to be deleted.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "204":{ "description":"Successful.", "content":{ "application/json":{} } }, "400":{ "description":"Bad Request.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "$ref":"#/components/responses/ApiException404" }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"token", "replenishRate":1, "requestedTokens":1, "burstCapacity":5 } ] } }, "/email/1/domains/{domainName}/tracking":{ "put":{ "tags":[ "channels", "email", "email-domains" ], "summary":"Update domain tracking events", "description":"API to update tracking events for the provided domain. Tracking events can be updated only for CLICKS, OPENS and UNSUBSCRIBES.", "operationId":"update-tracking-events", "parameters":[ { "name":"domainName", "in":"path", "description":"Domain for which the tracking events need to be updated.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.TrackingEventRequest" } } }, "required":true }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DomainResponse" } } } }, "400":{ "description":"Bad Request.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "description":"Requested domain does not exist.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"token", "replenishRate":1, "requestedTokens":1, "burstCapacity":5 } ] } }, "/email/1/domains/{domainName}/verify":{ "post":{ "tags":[ "channels", "email", "email-domains" ], "summary":"Verify domain", "description":"API request to verify records(TXT, MX, DKIM) associated with the provided domain.", "operationId":"verify-domain", "parameters":[ { "name":"domainName", "in":"path", "description":"Name of the domain that has to be verified.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "202":{ "description":"ACCEPTED" }, "400":{ "description":"Bad Request.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } } } } } }, "401":{ "$ref":"#/components/responses/ApiException401" }, "403":{ "$ref":"#/components/responses/ApiException403" }, "404":{ "description":"Requested domain does not exist.", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException" } } } }, "429":{ "$ref":"#/components/responses/ApiException429" }, "500":{ "$ref":"#/components/responses/ApiException500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"token", "replenishRate":1, "requestedTokens":1, "burstCapacity":5 } ] } }, "/email/1/suppressions":{ "get":{ "tags":[ "channels", "email", "email-suppression" ], "summary":"Get suppressions", "description":"This method retrieves the suppressions for domains that are owned or have permissions granted.", "operationId":"get-suppressions", "parameters":[ { "name":"domainName", "in":"query", "description":"Name of the requested domain.", "required":true, "style":"form", "explode":true, "schema":{ "type":"string", "description":"Name of the requested domain." } }, { "name":"type", "in":"query", "description":"Type of suppression.", "required":true, "style":"form", "explode":true, "schema":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiSuppressionType" } }, { "name":"emailAddress", "in":"query", "description":"Email address that is suppressed.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "description":"Email address that is suppressed." } }, { "name":"recipientDomain", "in":"query", "description":"Recipient domain that is suppressed.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "description":"Recipient domain that is suppressed." } }, { "name":"createdDateFrom", "in":"query", "description":"Start date for searching suppressions.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time", "description":"Start date for searching suppressions." } }, { "name":"createdDateTo", "in":"query", "description":"End date for searching suppressions.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "format":"date-time", "description":"End date for searching suppressions." } }, { "name":"page", "in":"query", "description":"Requested page number.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "default":0, "description":"Requested page number.", "minimum":0 } }, { "name":"size", "in":"query", "description":"Requested page size.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "default":100, "description":"Requested page size.", "maximum":1000, "minimum":1 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.SuppressionInfoPageResponse" }, "examples":{ "Get suppressions response":{ "summary":"Get suppressions response", "value":{ "results":[ { "domainName":"example.com", "emailAddress":"jane.smith@example.org", "type":"BOUNCE", "createdDate":"2024-08-14T14:02:17.366Z", "reason":"550 5.1.1 : user does not exist" } ], "paging":{ "page":0, "size":100 } } } } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request example for get suppressions":{ "summary":"Bad request example for get suppressions", "description":"Bad request example for get suppressions", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"type", "violation":"must not be null" }, { "property":"domainName", "violation":"must not be blank" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } }, "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "post":{ "tags":[ "channels", "email", "email-suppression" ], "summary":"Add suppressions", "description":"This method allows you to add email addresses to the suppression list. It accepts suppression requests, saves them asynchronously, and automatically ignores any duplicate entries.", "operationId":"add-suppressions", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.AddSuppressionRequest" }, "examples":{ "Add suppression request":{ "summary":"Add suppression request", "value":{ "suppressions":[ { "domainName":"example.com", "emailAddress":[ "jane.smith@example.org", "john.doe@example.org" ], "type":"BOUNCE" }, { "domainName":"another.example.com", "emailAddress":[ "john.smith@example.org", "john.perry@example.org" ], "type":"BOUNCE" } ] } } } } }, "required":true }, "responses":{ "204":{ "description":"No content" }, "400":{ "$ref":"#/components/responses/ApiError400" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "delete":{ "tags":[ "channels", "email", "email-suppression" ], "summary":"Delete suppressions", "description":"This method allows you to delete email addresses from the suppression list. It accepts delete suppression requests and asynchronously deletes them.", "operationId":"delete-suppressions", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DeleteSuppressionRequest" }, "examples":{ "Delete suppression request":{ "summary":"Delete suppression request", "value":{ "suppressions":[ { "domainName":"example.com", "emailAddress":[ "jane.smith@example.org", "john.doe@example.org" ], "type":"BOUNCE" }, { "domainName":"example.com", "emailAddress":[ "john.smith@example.org", "john.perry@example.org" ], "type":"COMPLAINT" }, { "domainName":"example.com", "emailAddress":[ "jack@peterson@example.org" ], "type":"OVER_QUOTA" } ] } } } } }, "required":true }, "responses":{ "204":{ "description":"No content" }, "400":{ "$ref":"#/components/responses/ApiError400" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/suppressions/domains":{ "get":{ "tags":[ "channels", "email", "email-suppression" ], "summary":"Get suppression domains", "description":"This method allows you to get domains that can be managed for suppressions and are either owned or have granted permissions.", "operationId":"get-domains", "parameters":[ { "name":"page", "in":"query", "description":"Requested page number.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "default":0, "description":"Requested page number.", "minimum":0 } }, { "name":"size", "in":"query", "description":"Requested page size.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "default":100, "description":"Requested page size.", "minimum":1 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DomainInfoPageResponse" }, "examples":{ "Get domains response":{ "summary":"Get domains response", "value":{ "results":[ { "domainName":"another.example.com", "dataAccess":"OWNER", "readBounces":true, "createBounces":true, "deleteBounces":true, "readComplaints":true, "createComplaints":true, "deleteComplaints":true, "readOverquotas":true, "deleteOverquotas":true }, { "domainName":"example.com", "dataAccess":"GRANTED", "readBounces":true, "createBounces":true, "deleteBounces":false, "readComplaints":true, "createComplaints":false, "deleteComplaints":false, "readOverquotas":false, "deleteOverquotas":false } ], "paging":{ "page":0, "size":100 } } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":100, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/ips":{ "get":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Get IPs", "description":"Returns all the dedicated IP addresses owned by this account.", "operationId":"get-all-ips", "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "type":"array", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpDetailResponse" } }, "examples":{ "Response example":{ "summary":"Response example", "value":[ { "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0", "ipAddresses":[ "198.51.100.0", "198.51.100.1" ], "pools":[ { "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name" } ] } ] } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/ips/commission":{ "post":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Commission IP", "description":"Commission a new Dedicated IP.\nDisaster Recovery is enabled by default for email traffic in the US and EU regions.Each dedicated IP is paired with a corresponding IP from a different data center within the same region. This pairing ensures that if one data center becomes unavailable, the paired IP can seamlessly take over full sending responsibilities, maintaining uninterrupted traffic flow.\nStandard pricing for dedicated IPs applies. Charges are incurred at the time of commissioning and recur monthly on the 1st of each month. For Disaster Recovery regions, each IP in the pair is billed separately at the standard rate.\nTo confirm the pricing applicable to your account, please contact your Account Manager.\n ", "operationId":"commission-ip", "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpResponse" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0", "ipAddresses":[ "198.51.100.0", "198.51.100.1" ] } } } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/ips/{ipId}":{ "get":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Get IP", "description":"Get detailed information about provided dedicated IP.", "operationId":"get-ip-details", "parameters":[ { "name":"ipId", "in":"path", "description":"Dedicated IP identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpDetailResponse" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0", "ipAddresses":[ "198.51.100.0", "198.51.100.1" ], "pools":[ { "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name" } ] } } } } } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"ipId", "violation":"Dedicated IP not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "delete":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Decommission IP", "description":"Decommission a Dedicated IP\nOnce a dedicated IP is decommissioned, billing for that IP will end at the start of the next billing cycle (on the 1st of the following month). For accounts with Disaster Recovery enabled in the US and EU regions, paired dedicated IPs will be decommissioned together.\n", "operationId":"decommission-ip", "parameters":[ { "name":"ipId", "in":"path", "description":"Dedicated IP identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "204":{ "description":"No Content" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"ipId", "violation":"Dedicated IP not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/pools":{ "get":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Get IP pools", "description":"Returns all the pools that are owned (created) by this account.", "operationId":"get-ip-pools", "parameters":[ { "name":"name", "in":"query", "description":"IP pool name.", "required":false, "style":"form", "explode":true, "schema":{ "type":"string", "maxLength":100, "minLength":1 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "type":"array", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolDetailResponse" } }, "examples":{ "Response example":{ "summary":"Response example", "value":[ { "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name", "ips":[ { "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0", "ipAddresses":[ "198.51.100.0", "198.51.100.1" ] } ] } ] } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "post":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Create IP pool", "description":"Create a new IP pool.", "operationId":"create-ip-pool", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolCreateApiRequest" }, "examples":{ "Request example":{ "summary":"Request example", "value":{ "name":"IP Pool name" } } } } }, "required":true }, "responses":{ "201":{ "description":"Created", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolResponse" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name" } } } } } }, "400":{ "$ref":"#/components/responses/ApiError400" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/pools/{poolId}":{ "get":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Get IP pool", "description":"Get detailed information about a provided IP pool.", "operationId":"get-ip-pool", "parameters":[ { "name":"poolId", "in":"path", "description":"IP pool identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolDetailResponse" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name", "ips":[ { "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0", "ipAddresses":[ "198.51.100.0", "198.51.100.1" ] } ] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"ipPoolId", "violation":"IP pool not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "put":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Update IP pool", "description":"Update a provided IP pool.", "operationId":"update-ip-pool", "parameters":[ { "name":"poolId", "in":"path", "description":"IP pool identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolCreateApiRequest" }, "examples":{ "Request example":{ "summary":"Request example", "value":{ "name":"IP Pool name" } } } } }, "required":true }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolResponse" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name" } } } } } }, "400":{ "$ref":"#/components/responses/ApiError400" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"ipPoolId", "violation":"IP pool not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "delete":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Delete IP pool", "description":"Delete provided IP pool. Deleting an IP pool also deletes any assigned IPs and any assignments to domains.", "operationId":"delete-ip-pool", "parameters":[ { "name":"poolId", "in":"path", "description":"IP pool identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "204":{ "description":"No Content" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"ipPoolId", "violation":"IP pool not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/pools/{poolId}/ips":{ "post":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Assign IP to pool", "description":"Assign provided dedicated IP to the provided IP pool.", "operationId":"assign-ip-to-pool", "parameters":[ { "name":"poolId", "in":"path", "description":"IP pool identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolAssignIpApiRequest" }, "examples":{ "Request example":{ "summary":"Request example", "value":{ "ipId":"DB3F9D439088BF73F5560443C8054AC4" } } } } }, "required":true }, "responses":{ "204":{ "description":"No Content", "content":{ "application/json":{} } }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"ipPoolId", "violation":"IP pool not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/pools/{poolId}/ips/{ipId}":{ "delete":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Unassign IP from pool", "description":"Unassign provided IP from the specific pool.", "operationId":"remove-ip-from-pool", "parameters":[ { "name":"poolId", "in":"path", "description":"IP pool identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } }, { "name":"ipId", "in":"path", "description":"Dedicated IP identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "204":{ "description":"No Content", "content":{ "application/json":{} } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"ipPoolId", "violation":"IP pool not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/paginated/ips":{ "get":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Get IPs (paginated)", "description":"Returns paginated dedicated IP addresses owned by this account.", "operationId":"get-all-ips-paginated", "parameters":[ { "name":"page", "in":"query", "description":"Results page to retrieve (0..N).", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":0, "minimum":0 } }, { "name":"size", "in":"query", "description":"Number of records per page.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":20, "maximum":100, "minimum":20 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "type":"object", "properties":{ "results":{ "type":"array", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpDetailResponse" } }, "paging":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.PageInfo" } }, "required":[ "paging", "results" ] }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "results":[ { "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0", "ipAddresses":[ "198.51.100.0", "198.51.100.1" ], "pools":[ { "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name" } ] } ], "paging":{ "page":0, "size":20, "totalPages":2, "totalResults":25 } } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/paginated/pools":{ "get":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Get IP pools (paginated)", "description":"Returns paginated IP pools owned by this account.", "operationId":"get-all-ip-pools-paginated", "parameters":[ { "name":"page", "in":"query", "description":"Results page to retrieve (0..N).", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":0, "minimum":0 } }, { "name":"size", "in":"query", "description":"Number of records per page.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":20, "maximum":100, "minimum":20 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "type":"object", "properties":{ "results":{ "type":"array", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolDetailResponse" } }, "paging":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.PageInfo" } }, "required":[ "paging", "results" ] }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "results":[ { "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name", "ips":[ { "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0", "ipAddresses":[ "198.51.100.0", "198.51.100.1" ] } ] } ], "paging":{ "page":0, "size":20, "totalPages":2, "totalResults":25 } } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/domains/{domainId}":{ "get":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Get domain", "description":"Get detailed information for provided domain such as assigned pools and their IPs.", "operationId":"get-ip-domain", "parameters":[ { "name":"domainId", "in":"path", "description":"Domain identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64", "minimum":1 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpDomainResponse" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "id":1, "name":"example.com", "pools":[ { "id":"08A3A7608750CC6E6080325A6ADF45B6", "name":"IP pool name", "priority":0, "ips":[ { "id":"DB3F9D439088BF73F5560443C8054AC4", "ip":"198.51.100.0" } ] } ] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"domainId", "violation":"Domain not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/domains/{domainId}/pools":{ "post":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Assign IP pool to domain", "description":"Assign an IP pool to the provided domain.", "operationId":"assign-pool-to-domain", "parameters":[ { "name":"domainId", "in":"path", "description":"Domain identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64", "minimum":1 } } ], "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DomainIpPoolAssignApiRequest" }, "examples":{ "Request example":{ "summary":"Request example", "value":{ "poolId":"08A3A7608750CC6E6080325A6ADF45B6", "priority":0 } } } } }, "required":true }, "responses":{ "204":{ "description":"No Content" }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"domainId", "violation":"Domain not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/ip-management/domains/{domainId}/pools/{poolId}":{ "put":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Update IP pool sending priority", "description":"Update specified pool's sending priority for the provided domain.", "operationId":"update-domain-pool-priority", "parameters":[ { "name":"domainId", "in":"path", "description":"Domain identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64", "minimum":1 } }, { "name":"poolId", "in":"path", "description":"IP pool identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DomainIpPoolUpdateApiRequest" } } }, "required":true }, "responses":{ "204":{ "description":"No Content" }, "400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"domainId", "violation":"Domain not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "delete":{ "tags":[ "channels", "email", "email-ip-management" ], "summary":"Unassign IP pool from domain", "description":"Unassign a specified pool from the provided domain.", "operationId":"remove-ip-pool-from-domain", "parameters":[ { "name":"domainId", "in":"path", "description":"Domain identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64", "minimum":1 } }, { "name":"poolId", "in":"path", "description":"IP pool identifier.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } } ], "responses":{ "204":{ "description":"No Content" }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Response example":{ "summary":"Response example", "value":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[ { "property":"domainId", "violation":"Domain not found" } ], "resources":[ { "name":"API documentation", "url":"https://www.infobip.com/docs/api/channels/email" } ] } } } } } }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/templates":{ "get":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Get email templates", "description":"Retrieves a list of available email templates.", "operationId":"get-email-templates", "parameters":[ { "name":"page", "in":"query", "description":"Identifies a specific page number from which to retrieve the email template details.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":0, "minimum":0 } }, { "name":"size", "in":"query", "description":"Identifies the maximum number of email templates returned in the list.", "required":false, "style":"form", "explode":true, "schema":{ "type":"integer", "format":"int32", "default":20, "maximum":20, "minimum":1 } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplateListPage" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "post":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Create email template", "description":"Creates a new email template with the provided details.", "operationId":"create-email-template", "requestBody":{ "content":{ "multipart/form-data":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.CreateEmailTemplateRequest" }, "examples":{ "Create email template using cURL":{ "summary":"Create email template using cURL", "description":"Create email template using cURL", "value":"\ncurl -X POST 'https://{baseUrl}/email/1/templates' \\\n -H 'Authorization: {authorization}' \\\n -H 'Accept: application/json' \\\n -F 'name=Welcome email' \\\n -F 'from=Infobip ' \\\n -F 'replyTo=support@example.com' \\\n -F 'subject=Welcome to Infobip' \\\n -F 'preheader=Welcome to Infobip' \\\n -F 'html=

Welcome to Infobip

' \\\n -F 'landingPage=1_2345' \\\n -F 'attachments=[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]' \n" }, "Create email template using Java":{ "summary":"Create email template using Java", "description":"Create email template using Java", "value":"\nOkHttpClient client = new OkHttpClient().newBuilder().build();\n\nString attachmentsJson = \"[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encoded_data}\\\"}]\";\n\nMultipartBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)\n .addFormDataPart(\"name\", \"Welcome email\")\n .addFormDataPart(\"from\", \"Infobip \")\n .addFormDataPart(\"replyTo\", \"support@example.com\")\n .addFormDataPart(\"subject\", \"Welcome to Infobip\")\n .addFormDataPart(\"preheader\", \"Welcome to Infobip\")\n .addFormDataPart(\"html\", \"

Welcome to Infobip

\")\n .addFormDataPart(\"landingPage\", \"1_2345\")\n .addFormDataPart(\"attachments\", attachmentsJson) // String representation of JSON array\n .build();\n\nRequest request = new Request.Builder()\n .url(\"https://{baseUrl}/email/1/templates\")\n .method(\"POST\", body)\n .addHeader(\"Authorization\", \"{authorization}\")\n .addHeader(\"Accept\", \"application/json\")\n .build();\n\nResponse response = client.newCall(request).execute();\nSystem.out.println(response.body().string());\n" }, "Create email template using C#":{ "summary":"Create email template using C#", "description":"Create email template using C#", "value":"\nvar options = new RestClientOptions(\"{baseUrl}\")\n{\n MaxTimeout = -1,\n};\nvar client = new RestClient(options);\n\nvar request = new RestRequest(\"/email/1/templates\", Method.POST);\nrequest.AddHeader(\"Authorization\", \"{authorization}\");\nrequest.AddHeader(\"Accept\", \"application/json\");\n\n// Create a multipart form-data content\nvar formData = new MultipartFormDataContent();\nformData.Add(new StringContent(\"Welcome email\"), \"name\");\nformData.Add(new StringContent(\"Infobip \"), \"from\");\nformData.Add(new StringContent(\"support@example.com\"), \"replyTo\");\nformData.Add(new StringContent(\"Welcome to Infobip\"), \"subject\");\nformData.Add(new StringContent(\"Welcome to Infobip\"), \"preheader\");\nformData.Add(new StringContent(\"

Welcome to Infobip

\"), \"html\");\nformData.Add(new StringContent(\"1_2345\"), \"landingPage\");\n\n// Add attachments as a JSON string\nvar attachmentsJson = \"[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]\";\nformData.Add(new StringContent(attachmentsJson), \"attachments\");\n\n// Add the form data to the request\nrequest.AddBody(formData);\n\n// Execute the request\nRestResponse response = await client.ExecuteAsync(request);\n\n// Output the response\nConsole.WriteLine(response.Content);\n" }, "Create email template using Go":{ "summary":"Create email template using Go", "description":"Create email template using Go", "value":"\npackage main\n\nimport (\n \"bytes\"\n \"fmt\"\n \"mime/multipart\"\n \"net/http\"\n \"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://{baseUrl}/email/1/templates\"\n\tmethod := \"POST\"\n\n\t// Create a buffer and a multipart writer\n\tvar requestBody bytes.Buffer\n\twriter := multipart.NewWriter(&requestBody)\n\n\t// Add fields to the multipart form-data\n\twriter.WriteField(\"name\", \"Welcome email\")\n\twriter.WriteField(\"from\", \"Infobip \")\n\twriter.WriteField(\"replyTo\", \"support@example.com\")\n\twriter.WriteField(\"subject\", \"Welcome to Infobip\")\n\twriter.WriteField(\"preheader\", \"Welcome to Infobip\")\n\twriter.WriteField(\"html\", \"

Welcome to Infobip

\")\n\twriter.WriteField(\"landingPage\", \"1_2345\")\n\n\t// Add attachments as a JSON string\n\tattachmentsJson := `[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encoded_data}\"}]`\n\twriter.WriteField(\"attachments\", attachmentsJson)\n\n\t// Close the writer to finish constructing the body\n\twriter.Close()\n\n\t// Create the request\n\treq, err := http.NewRequest(method, url, &requestBody)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\n\t// Set necessary headers\n\treq.Header.Set(\"Authorization\", \"{authorization}\")\n\treq.Header.Set(\"Accept\", \"application/json\")\n\treq.Header.Set(\"Content-Type\", writer.FormDataContentType())\n\n\t// Send the request\n\tclient := &http.Client{}\n\tres, err := client.Do(req)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tdefer res.Body.Close()\n\n\t// Read and output the response\n\tbody, err := ioutil.ReadAll(res.Body)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tfmt.Println(string(body))\n}\n" }, "Create email template using Python":{ "summary":"Create email template using Python", "description":"Create email template using Python", "value":"\nimport requests\n\nurl = \"https://{baseUrl}/email/1/templates\"\nheaders = {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n}\n\n# Multipart form data\nfiles = {\n 'name': (None, 'Welcome email'),\n 'from': (None, 'Infobip

Welcome to Infobip

'),\n 'attachments': (None, '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]'),\n 'landingPage': (None, '1_2345')\n}\n\nresponse = requests.post(url, headers=headers, files=files)\n\nprint(response.text)\n" }, "Create email template using PHP":{ "summary":"Create email template using PHP", "description":"Create email template using PHP", "value":"\n 'Welcome email',\n 'from' => 'Infobip ',\n 'replyTo' => 'support@example.com',\n 'subject' => 'Welcome to Infobip',\n 'preheader' => 'Welcome to Infobip',\n 'html' => '

Welcome to Infobip

',\n 'attachments' => '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]',\n 'landingPage' => '1_2345'\n);\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://{baseUrl}/email/1/templates',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'POST',\n CURLOPT_POSTFIELDS => $data,\n CURLOPT_HTTPHEADER => array(\n 'Authorization: {authorization}',\n 'Accept: application/json'\n ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n?>\n" }, "Create email template using JavaScript":{ "summary":"Create email template using JavaScript", "description":"Create email template using JavaScript", "value":"\nconst formData = new FormData();\nformData.append('name', 'Welcome email');\nformData.append('from', 'Infobip ');\nformData.append('replyTo', 'support@example.com');\nformData.append('subject', 'Welcome to Infobip');\nformData.append('preheader', 'Welcome to Infobip');\nformData.append('html', '

Welcome to Infobip

');\nformData.append('attachments', '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]');\nformData.append('landingPage', '1_2345');\n\nfetch('https://{baseUrl}/email/1/templates', {\n method: 'POST',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n },\n body: formData // Send FormData object with attachments\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));\n" }, "Create email template using NodeJs":{ "summary":"Create email template using NodeJs", "description":"Create email template using NodeJs", "value":"\nconst https = require('follow-redirects').https;\nconst FormData = require('form-data');\nconst fs = require('fs');\n\nconst form = new FormData();\nform.append('name', 'Welcome email');\nform.append('from', 'Infobip ');\nform.append('replyTo', 'support@example.com');\nform.append('subject', 'Welcome to Infobip');\nform.append('preheader', 'Welcome to Infobip');\nform.append('html', '

Welcome to Infobip

');\nform.append('attachments', '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]');\nform.append('landingPage', '1_2345');\n\n// Prepare options for the request\nconst options = {\n method: 'POST',\n hostname: '{baseUrl}',\n path: '/email/1/templates',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json',\n ...form.getHeaders() // This automatically includes 'Content-Type' and boundary\n },\n maxRedirects: 20\n};\n\n// Send the request\nconst req = https.request(options, function(res) {\n let chunks = [];\n\n res.on('data', function(chunk) {\n chunks.push(chunk);\n });\n\n res.on('end', function() {\n const body = Buffer.concat(chunks);\n console.log(body.toString());\n });\n\n res.on('error', function(error) {\n console.error(error);\n });\n});\n\n// Pipe the form data into the request body\nform.pipe(req);\n" }, "Create email template using Ruby":{ "summary":"Create email template using Ruby", "description":"Create email template using Ruby", "value":"\nrequire 'uri'\nrequire 'net/http'\nrequire 'json'\nrequire 'mime/types'\nrequire 'multipart/post'\n\nurl = URI(\"https://{baseUrl}/email/1/templates\")\n\n# Prepare the data as a hash\ndata = {\n \"name\" => \"Welcome email\",\n \"from\" => \"Infobip \",\n \"replyTo\" => \"support@example.com\",\n \"subject\" => \"Welcome to Infobip\",\n \"preheader\" => \"Welcome to Infobip\",\n \"html\" => \"

Welcome to Infobip

\",\n \"attachments\" => [\n {\n \"contentType\" => \"application/pdf\",\n \"fileName\" => \"attachment.pdf\",\n \"data\" => \"{base64encodedData}\"\n }\n ],\n \"landingPage\" => \"1_2345\"\n}\n\n# Prepare the multipart data\nmultipart_data = Multipart::Post.prepare_multipart(data)\n\n# Initialize Net::HTTP for the request\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\n# Create the request\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Authorization\"] = \"{authorization}\"\nrequest[\"Accept\"] = \"application/json\"\nrequest[\"Content-Type\"] = \"multipart/form-data; boundary=#{multipart_data.boundary}\"\nrequest.body = multipart_data.body\n\n# Send the request\nresponse = https.request(request)\n\n# Print the response body\nputs response.read_body\n" } } } } }, "responses":{ "201":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplate" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/templates/{templateId}":{ "get":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Get email template", "description":"Retrieves the details of a specific email template by its identifier (ID).", "operationId":"get-email-template", "parameters":[ { "name":"templateId", "in":"path", "description":"Unique identifier (ID) of the email template.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplate" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "put":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Update email template", "description":"Updates an existing email template with new data.", "operationId":"update-email-template", "parameters":[ { "name":"templateId", "in":"path", "description":"Unique identifier (ID) of the email template.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "requestBody":{ "content":{ "multipart/form-data":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.CreateEmailTemplateRequest" }, "examples":{ "Update email template using cURL":{ "summary":"Update email template using cURL", "description":"Update email template using cURL", "value":"\ncurl -X PUT 'https://{baseUrl}/email/1/templates/{templateId}' \\\n -H 'Authorization: {authorization}' \\\n -H 'Accept: application/json' \\\n -F 'name=Welcome email' \\\n -F 'from=Infobip ' \\\n -F 'replyTo=support@example.com' \\\n -F 'subject=Welcome to Infobip' \\\n -F 'preheader=Welcome to Infobip' \\\n -F 'html=

Welcome to Infobip

' \\\n -F 'landingPage=1_2345' \\\n -F 'attachments=[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]' \n" }, "Update email template using Java":{ "summary":"Update email template using Java", "description":"Update email template using Java", "value":"\nOkHttpClient client = new OkHttpClient().newBuilder().build();\n\nString attachmentsJson = \"[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]\";\n\nMultipartBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)\n .addFormDataPart(\"name\", \"Welcome email\")\n .addFormDataPart(\"from\", \"Infobip \")\n .addFormDataPart(\"replyTo\", \"support@example.com\")\n .addFormDataPart(\"subject\", \"Welcome to Infobip\")\n .addFormDataPart(\"preheader\", \"Welcome to Infobip\")\n .addFormDataPart(\"html\", \"

Welcome to Infobip

\")\n .addFormDataPart(\"landingPage\", \"1_2345\")\n .addFormDataPart(\"attachments\", attachmentsJson) // String representation of JSON array\n .build();\n\nRequest request = new Request.Builder()\n .url(\"https://{baseUrl}/email/1/templates/{templateId}\")\n .method(\"PUT\", body)\n .addHeader(\"Authorization\", \"{authorization}\")\n .addHeader(\"Accept\", \"application/json\")\n .build();\n\nResponse response = client.newCall(request).execute();\nSystem.out.println(response.body().string());\n" }, "Update email template using C#":{ "summary":"Update email template using C#", "description":"Update email template using C#", "value":"\nvar options = new RestClientOptions(\"{baseUrl}\")\n{\n MaxTimeout = -1,\n};\nvar client = new RestClient(options);\n\nvar request = new RestRequest(\"/email/1/templates/{templateId}\", Method.PUT);\nrequest.AddHeader(\"Authorization\", \"{authorization}\");\nrequest.AddHeader(\"Accept\", \"application/json\");\n\n// Create a multipart form-data content\nvar formData = new MultipartFormDataContent();\nformData.Add(new StringContent(\"Welcome email\"), \"name\");\nformData.Add(new StringContent(\"Infobip \"), \"from\");\nformData.Add(new StringContent(\"support@example.com\"), \"replyTo\");\nformData.Add(new StringContent(\"Welcome to Infobip\"), \"subject\");\nformData.Add(new StringContent(\"Welcome to Infobip\"), \"preheader\");\nformData.Add(new StringContent(\"

Welcome to Infobip

\"), \"html\");\nformData.Add(new StringContent(\"1_2345\"), \"landingPage\");\n\n// Add attachments as a JSON string\nvar attachmentsJson = \"[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]\";\nformData.Add(new StringContent(attachmentsJson), \"attachments\");\n\n// Add the form data to the request\nrequest.AddBody(formData);\n\n// Execute the request\nRestResponse response = await client.ExecuteAsync(request);\n\n// Output the response\nConsole.WriteLine(response.Content);\n" }, "Update email template using Go":{ "summary":"Update email template using Go", "description":"Update email template using Go", "value":"\npackage main\n\nimport (\n \"bytes\"\n \"fmt\"\n \"mime/multipart\"\n \"net/http\"\n \"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://{baseUrl}/email/1/templates/{templateId}\"\n\tmethod := \"PUT\"\n\n\t// Create a buffer and a multipart writer\n\tvar requestBody bytes.Buffer\n\twriter := multipart.NewWriter(&requestBody)\n\n\t// Add fields to the multipart form-data\n\twriter.WriteField(\"name\", \"Welcome email\")\n\twriter.WriteField(\"from\", \"Infobip \")\n\twriter.WriteField(\"replyTo\", \"support@example.com\")\n\twriter.WriteField(\"subject\", \"Welcome to Infobip\")\n\twriter.WriteField(\"preheader\", \"Welcome to Infobip\")\n\twriter.WriteField(\"html\", \"

Welcome to Infobip

\")\n\twriter.WriteField(\"landingPage\", \"1_2345\")\n\n\t// Add attachments as a JSON string\n\tattachmentsJson := `[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encoded_data}\"}]`\n\twriter.WriteField(\"attachments\", attachmentsJson)\n\n\t// Close the writer to finish constructing the body\n\twriter.Close()\n\n\t// Create the request\n\treq, err := http.NewRequest(method, url, &requestBody)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\n\t// Set necessary headers\n\treq.Header.Set(\"Authorization\", \"{authorization}\")\n\treq.Header.Set(\"Accept\", \"application/json\")\n\treq.Header.Set(\"Content-Type\", writer.FormDataContentType())\n\n\t// Send the request\n\tclient := &http.Client{}\n\tres, err := client.Do(req)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tdefer res.Body.Close()\n\n\t// Read and output the response\n\tbody, err := ioutil.ReadAll(res.Body)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tfmt.Println(string(body))\n}\n" }, "Update email template using Python":{ "summary":"Update email template using Python", "description":"Update email template using Python", "value":"\nimport requests\n\nurl = \"https://{baseUrl}/email/1/templates/{templateId}\"\nheaders = {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n}\n\n# Multipart form data\nfiles = {\n 'name': (None, 'Welcome email'),\n 'from': (None, 'Infobip

Welcome to Infobip

'),\n 'attachments': (None, '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]'),\n 'landingPage': (None, '1_2345')\n}\n\nresponse = requests.put(url, headers=headers, files=files)\n\nprint(response.text)\n" }, "Update email template using PHP":{ "summary":"Update email template using PHP", "description":"Update email template using PHP", "value":"\n 'Welcome email',\n 'from' => 'Infobip ',\n 'replyTo' => 'support@example.com',\n 'subject' => 'Welcome to Infobip',\n 'preheader' => 'Welcome to Infobip',\n 'html' => '

Welcome to Infobip

',\n 'attachments' => '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]',\n 'landingPage' => '1_2345'\n);\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://{baseUrl}/email/1/templates/{templateId}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'PUT',\n CURLOPT_POSTFIELDS => $data,\n CURLOPT_HTTPHEADER => array(\n 'Authorization: {authorization}',\n 'Accept: application/json'\n ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n?>\n" }, "Update email template using JavaScript":{ "summary":"Update email template using JavaScript", "description":"Update email template using JavaScript", "value":"\nconst formData = new FormData();\nformData.append('name', 'Welcome email');\nformData.append('from', 'Infobip ');\nformData.append('replyTo', 'support@example.com');\nformData.append('subject', 'Welcome to Infobip');\nformData.append('preheader', 'Welcome to Infobip');\nformData.append('html', '

Welcome to Infobip

');\nformData.append('attachments', '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]');\nformData.append('landingPage', '1_2345');\n\nfetch('https://{baseUrl}/email/1/templates/{templateId}', {\n method: 'PUT',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n },\n body: formData // Send FormData object with attachments\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));\n" }, "Update email template using NodeJs":{ "summary":"Update email template using NodeJs", "description":"Update email template using NodeJs", "value":"\nconst https = require('follow-redirects').https;\nconst FormData = require('form-data');\nconst fs = require('fs');\n\nconst form = new FormData();\nform.append('name', 'Welcome email');\nform.append('from', 'Infobip ');\nform.append('replyTo', 'support@example.com');\nform.append('subject', 'Welcome to Infobip');\nform.append('preheader', 'Welcome to Infobip');\nform.append('html', '

Welcome to Infobip

');\nform.append('attachments', '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]');\nform.append('landingPage', '1_2345');\n\n// Prepare options for the request\nconst options = {\n method: 'PUT',\n hostname: '{baseUrl}',\n path: '/email/1/templates/{templateId}',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json',\n ...form.getHeaders() // This automatically includes 'Content-Type' and boundary\n },\n maxRedirects: 20\n};\n\n// Send the request\nconst req = https.request(options, function(res) {\n let chunks = [];\n\n res.on('data', function(chunk) {\n chunks.push(chunk);\n });\n\n res.on('end', function() {\n const body = Buffer.concat(chunks);\n console.log(body.toString());\n });\n\n res.on('error', function(error) {\n console.error(error);\n });\n});\n\n// Pipe the form data into the request body\nform.pipe(req);\n" }, "Update email template using Ruby":{ "summary":"Update email template using Ruby", "description":"Update email template using Ruby", "value":"\nrequire 'uri'\nrequire 'net/http'\nrequire 'json'\nrequire 'mime/types'\nrequire 'multipart/post'\n\nurl = URI(\"https://{baseUrl}/email/1/templates/{templateId}\")\n\n# Prepare the data as a hash\ndata = {\n \"name\" => \"Welcome email\",\n \"from\" => \"Infobip \",\n \"replyTo\" => \"support@example.com\",\n \"subject\" => \"Welcome to Infobip\",\n \"preheader\" => \"Welcome to Infobip\",\n \"html\" => \"

Welcome to Infobip

\",\n \"attachments\" => [\n {\n \"contentType\" => \"application/pdf\",\n \"fileName\" => \"attachment.pdf\",\n \"data\" => \"{base64encodedData}\"\n }\n ],\n \"landingPage\" => \"1_2345\"\n}\n\n# Prepare the multipart data\nmultipart_data = Multipart::Post.prepare_multipart(data)\n\n# Initialize Net::HTTP for the request\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\n# Create the request\nrequest = Net::HTTP::Put.new(url)\nrequest[\"Authorization\"] = \"{authorization}\"\nrequest[\"Accept\"] = \"application/json\"\nrequest[\"Content-Type\"] = \"multipart/form-data; boundary=#{multipart_data.boundary}\"\nrequest.body = multipart_data.body\n\n# Send the request\nresponse = https.request(request)\n\n# Print the response body\nputs response.read_body\n" } } } } }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplate" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "delete":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Delete email template", "description":"Deletes a specific email template by its ID.", "operationId":"delete-email-template", "parameters":[ { "name":"templateId", "in":"path", "description":"Unique identifier (ID) of the email template.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "responses":{ "204":{ "description":"No content", "content":{ "*/*":{ "schema":{ "type":"object" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "patch":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Patch email template", "description":"Partially updates an existing email template with the provided changes.", "operationId":"patch-email-template", "parameters":[ { "name":"templateId", "in":"path", "description":"Unique identifier (ID) of the email template.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "requestBody":{ "content":{ "multipart/form-data":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.CreateEmailTemplateRequest" }, "examples":{ "Patch email template using cURL":{ "summary":"Patch email template using cURL", "description":"Patch email template using cURL", "value":"\ncurl -X PATCH 'https://{baseUrl}/email/1/templates/{templateId}' \\\n -H 'Authorization: {authorization}' \\\n -H 'Accept: application/json' \\\n -F 'name=Welcome email' \\\n -F 'from=Infobip ' \\\n -F 'replyTo=support@example.com' \\\n -F 'subject=Welcome to Infobip' \\\n -F 'preheader=Welcome to Infobip' \\\n -F 'html=

Welcome to Infobip

' \\\n -F 'landingPage=1_2345' \\\n -F 'attachments=[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]' \n" }, "Patch email template using Java":{ "summary":"Patch email template using Java", "description":"Patch email template using Java", "value":"\nOkHttpClient client = new OkHttpClient().newBuilder().build();\n\nString attachmentsJson = \"[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]\";\n\nMultipartBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)\n .addFormDataPart(\"name\", \"Welcome email\")\n .addFormDataPart(\"from\", \"Infobip \")\n .addFormDataPart(\"replyTo\", \"support@example.com\")\n .addFormDataPart(\"subject\", \"Welcome to Infobip\")\n .addFormDataPart(\"preheader\", \"Welcome to Infobip\")\n .addFormDataPart(\"html\", \"

Welcome to Infobip

\")\n .addFormDataPart(\"landingPage\", \"1_2345\")\n .addFormDataPart(\"attachments\", attachmentsJson) // String representation of JSON array\n .build();\n\nRequest request = new Request.Builder()\n .url(\"https://{baseUrl}/email/1/templates/{templateId}\")\n .method(\"PUT\", body)\n .addHeader(\"Authorization\", \"{authorization}\")\n .addHeader(\"Accept\", \"application/json\")\n .build();\n\nResponse response = client.newCall(request).execute();\nSystem.out.println(response.body().string());\n" }, "Patch email template using C#":{ "summary":"Patch email template using C#", "description":"Patch email template using C#", "value":"\nvar options = new RestClientOptions(\"{baseUrl}\")\n{\n MaxTimeout = -1,\n};\nvar client = new RestClient(options);\n\nvar request = new RestRequest(\"/email/1/templates/{templateId}\", Method.PATCH);\nrequest.AddHeader(\"Authorization\", \"{authorization}\");\nrequest.AddHeader(\"Accept\", \"application/json\");\n\n// Create a multipart form-data content\nvar formData = new MultipartFormDataContent();\nformData.Add(new StringContent(\"Welcome email\"), \"name\");\nformData.Add(new StringContent(\"Infobip \"), \"from\");\nformData.Add(new StringContent(\"support@example.com\"), \"replyTo\");\nformData.Add(new StringContent(\"Welcome to Infobip\"), \"subject\");\nformData.Add(new StringContent(\"Welcome to Infobip\"), \"preheader\");\nformData.Add(new StringContent(\"

Welcome to Infobip

\"), \"html\");\nformData.Add(new StringContent(\"1_2345\"), \"landingPage\");\n\n// Add attachments as a JSON string\nvar attachmentsJson = \"[{\\\"contentType\\\":\\\"application/pdf\\\",\\\"fileName\\\":\\\"attachment.pdf\\\",\\\"data\\\":\\\"{base64encodedData}\\\"}]\";\nformData.Add(new StringContent(attachmentsJson), \"attachments\");\n\n// Add the form data to the request\nrequest.AddBody(formData);\n\n// Execute the request\nRestResponse response = await client.ExecuteAsync(request);\n\n// Output the response\nConsole.WriteLine(response.Content);\n" }, "Patch email template using Go":{ "summary":"Patch email template using Go", "description":"Patch email template using Go", "value":"\npackage main\n\nimport (\n \"bytes\"\n \"fmt\"\n \"mime/multipart\"\n \"net/http\"\n \"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://{baseUrl}/email/1/templates/{templateId}\"\n\tmethod := \"PUT\"\n\n\t// Create a buffer and a multipart writer\n\tvar requestBody bytes.Buffer\n\twriter := multipart.NewWriter(&requestBody)\n\n\t// Add fields to the multipart form-data\n\twriter.WriteField(\"name\", \"Welcome email\")\n\twriter.WriteField(\"from\", \"Infobip \")\n\twriter.WriteField(\"replyTo\", \"support@example.com\")\n\twriter.WriteField(\"subject\", \"Welcome to Infobip\")\n\twriter.WriteField(\"preheader\", \"Welcome to Infobip\")\n\twriter.WriteField(\"html\", \"

Welcome to Infobip

\")\n\twriter.WriteField(\"landingPage\", \"1_2345\")\n\n\t// Add attachments as a JSON string\n\tattachmentsJson := `[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encoded_data}\"}]`\n\twriter.WriteField(\"attachments\", attachmentsJson)\n\n\t// Close the writer to finish constructing the body\n\twriter.Close()\n\n\t// Create the request\n\treq, err := http.NewRequest(method, url, &requestBody)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\n\t// Set necessary headers\n\treq.Header.Set(\"Authorization\", \"{authorization}\")\n\treq.Header.Set(\"Accept\", \"application/json\")\n\treq.Header.Set(\"Content-Type\", writer.FormDataContentType())\n\n\t// Send the request\n\tclient := &http.Client{}\n\tres, err := client.Do(req)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tdefer res.Body.Close()\n\n\t// Read and output the response\n\tbody, err := ioutil.ReadAll(res.Body)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tfmt.Println(string(body))\n}\n" }, "Patch email template using Python":{ "summary":"Patch email template using Python", "description":"Patch email template using Python", "value":"\nimport requests\n\nurl = \"https://{baseUrl}/email/1/templates/{templateId}\"\nheaders = {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n}\n\n# Multipart form data\nfiles = {\n 'name': (None, 'Welcome email'),\n 'from': (None, 'Infobip

Welcome to Infobip

'),\n 'attachments': (None, '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]'),\n 'landingPage': (None, '1_2345')\n}\n\nresponse = requests.patch(url, headers=headers, files=files)\n\nprint(response.text)\n" }, "Patch email template using PHP":{ "summary":"Patch email template using PHP", "description":"Patch email template using PHP", "value":"\n 'Welcome email',\n 'from' => 'Infobip ',\n 'replyTo' => 'support@example.com',\n 'subject' => 'Welcome to Infobip',\n 'preheader' => 'Welcome to Infobip',\n 'html' => '

Welcome to Infobip

',\n 'attachments' => '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]',\n 'landingPage' => '1_2345'\n);\n\ncurl_setopt_array($curl, array(\n CURLODT_URL => 'https://{baseUrl}/email/1/templates/{templateId}',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'PATCH',\n CURLOPT_POSTFIELDS => $data,\n CURLOPT_HTTPHEADER => array(\n 'Authorization: {authorization}',\n 'Accept: application/json'\n ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n?>\n" }, "Patch email template using JavaScript":{ "summary":"Patch email template using JavaScript", "description":"Patch email template using JavaScript", "value":"\nconst formData = new FormData();\nformData.append('name', 'Welcome email');\nformData.append('from', 'Infobip ');\nformData.append('replyTo', 'support@example.com');\nformData.append('subject', 'Welcome to Infobip');\nformData.append('preheader', 'Welcome to Infobip');\nformData.append('html', '

Welcome to Infobip

');\nformData.append('attachments', '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]');\nformData.append('landingPage', '1_2345');\n\nfetch('https://{baseUrl}/email/1/templates/{templateId}', {\n method: 'PATCH',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n },\n body: formData // Send FormData object with attachments\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));\n" }, "Patch email template using NodeJs":{ "summary":"Patch email template using NodeJs", "description":"Patch email template using NodeJs", "value":"\nconst https = require('follow-redirects').https;\nconst FormData = require('form-data');\nconst fs = require('fs');\n\nconst form = new FormData();\nform.append('name', 'Welcome email');\nform.append('from', 'Infobip ');\nform.append('replyTo', 'support@example.com');\nform.append('subject', 'Welcome to Infobip');\nform.append('preheader', 'Welcome to Infobip');\nform.append('html', '

Welcome to Infobip

');\nform.append('attachments', '[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"{base64encodedData}\"}]');\nform.append('landingPage', '1_2345');\n\n// Prepare options for the request\nconst options = {\n method: 'PATCH',\n hostname: '{baseUrl}',\n path: '/email/1/templates/{templateId}',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json',\n ...form.getHeaders() // This automatically includes 'Content-Type' and boundary\n },\n maxRedirects: 20\n};\n\n// Send the request\nconst req = https.request(options, function(res) {\n let chunks = [];\n\n res.on('data', function(chunk) {\n chunks.push(chunk);\n });\n\n res.on('end', function() {\n const body = Buffer.concat(chunks);\n console.log(body.toString());\n });\n\n res.on('error', function(error) {\n console.error(error);\n });\n});\n\n// Pipe the form data into the request body\nform.pipe(req);\n " }, "Patch email template using Ruby":{ "summary":"Patch email template using Ruby", "description":"Patch email template using Ruby", "value":"\nrequire 'uri'\nrequire 'net/http'\nrequire 'json'\nrequire 'mime/types'\nrequire 'multipart/post'\n\nurl = URI(\"https://{baseUrl}/email/1/templates/{templateId}\")\n\n# Prepare the data as a hash\ndata = {\n \"name\" => \"Welcome email\",\n \"from\" => \"Infobip \",\n \"replyTo\" => \"support@example.com\",\n \"subject\" => \"Welcome to Infobip\",\n \"preheader\" => \"Welcome to Infobip\",\n \"html\" => \"

Welcome to Infobip

\",\n \"attachments\" => [\n {\n \"contentType\" => \"application/pdf\",\n \"fileName\" => \"attachment.pdf\",\n \"data\" => \"{base64encodedData}\"\n }\n ],\n \"landingPage\" => \"1_2345\"\n}\n\n# Prepare the multipart data\nmultipart_data = Multipart::Post.prepare_multipart(data)\n\n# Initialize Net::HTTP for the request\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\n# Create the request\nrequest = Net::HTTP::Patch.new(url)\nrequest[\"Authorization\"] = \"{authorization}\"\nrequest[\"Accept\"] = \"application/json\"\nrequest[\"Content-Type\"] = \"multipart/form-data; boundary=#{multipart_data.boundary}\"\nrequest.body = multipart_data.body\n\n# Send the request\nresponse = https.request(request)\n\n# Print the response body\nputs response.read_body\n" } } } } }, "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplate" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/templates/{templateId}/preview":{ "post":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Generate email template preview", "description":"Generates a rendered preview of an email template by replacing placeholders with the provided key-value data.", "operationId":"generate-email-template-preview", "parameters":[ { "name":"templateId", "in":"path", "description":"Unique identifier (ID) of the email template.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "requestBody":{ "content":{ "multipart/form-data":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplatePreviewRequest" }, "examples":{ "Generate email template preview cURL":{ "summary":"Generate email template preview cURL", "description":"Generate email template preview cURL", "value":"\ncurl -X POST \"{baseUrl}/email/1/templates/{templateId}/preview\" \\\n -H \"Authorization: {authorization}\" \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"placeholders\": {\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n }\n}'\n" }, "Generate email template preview Java":{ "summary":"Generate email template preview Java", "description":"Generate email template preview Java", "value":"\nOkHttpClient client = new OkHttpClient().newBuilder().build();\n\n// Define the JSON payload\nString payload = \"{\"placeholders\": {\"firstName\":\"John\", \"lastName\":\"Doe\"}}\"\n\n// Create the request body\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(payload, mediaType);\n\n// Build the request\nRequest request = new Request.Builder()\n .url(\"https://{baseUrl}/email/1/templates/{templateId}/preview\")\n .method(\"POST\", body)\n .addHeader(\"Authorization\", \"{authorization}\")\n .addHeader(\"Accept\", \"application/json\")\n .addHeader(\"Content-Type\", \"application/json\")\n .build();\n\n// Execute the request\nResponse response = client.newCall(request).execute();\n\n// Print the response\nSystem.out.println(response.body().string());\n" }, "Generate email template preview C#":{ "summary":"Generate email template preview C#", "description":"Generate email template preview C#", "value":"\nvar options = new RestClientOptions(\"{baseUrl}\")\n{\n MaxTimeout = -1,\n};\nvar client = new RestClient(options);\n\nvar request = new RestRequest(\"/email/1/templates/{templateId}/preview\", Method.POST);\nrequest.AddHeader(\"Authorization\", \"{authorization}\");\nrequest.AddHeader(\"Accept\", \"application/json\");\n\n// Create a multipart form-data content\nvar payload = new {\n placeholders = new {\n firstName = \"John\",\n lastName = \"Doe\"\n }\n};\n\n// Add the form data to the request\nrequest.AddJsonBody(payload);\n\n// Execute the request\nRestResponse response = await client.ExecuteAsync(request);\n\n// Output the response\nConsole.WriteLine(response.Content);\n" }, "Generate email template preview Go":{ "summary":"Generate email template preview Go", "description":"Generate email template preview Go", "value":"\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://{baseUrl}/email/1/templates/{templateId}/preview\"\n\tmethod := \"POST\"\n\n\t// Define the JSON payload\n\tjsonData := []byte(`{\n \"placeholders\": {\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n }\n }`)\n\n\t// Create the request\n\treq, err := http.NewRequest(method, url, bytes.NewBuffer(jsonData))\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\n\t// Set necessary headers\n\treq.Header.Set(\"Authorization\", \"{authorization}\")\n\treq.Header.Set(\"Accept\", \"application/json\")\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\n\t// Send the request\n\tclient := &http.Client{}\n\tres, err := client.Do(req)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tdefer res.Body.Close()\n\n\t// Read and output the response\n\tbody, err := ioutil.ReadAll(res.Body)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\n\tfmt.Println(string(body))\n} \n" }, "Generate email template preview Python":{ "summary":"Generate email template preview Python", "description":"Generate email template preview Python", "value":"\nimport requests\nimport json\n\nurl = \"https://{baseUrl}/email/1/templates/{templateId}/preview\"\n\nheaders = {\n \"Authorization\": \"{authorization}\",\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\"\n}\n\n# JSON payload\npayload = {\n \"placeholders\": {\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n }\n}\n\nresponse = requests.post(url, headers=headers, data=json.dumps(payload))\n\nprint(response.text) \n" }, "Generate email template preview PHP":{ "summary":"Generate email template preview PHP", "description":"Generate email template preview PHP", "value":"\n array(\n \"firstName\" => \"John\",\n \"lastName\" => \"Doe\"\n )\n);\n$jsonData = json_encode($data);\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://{baseUrl}/email/1/templates/{templateId}/preview',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'POST',\n CURLOPT_POSTFIELDS => $jsonData,\n CURLOPT_HTTPHEADER => array(\n 'Authorization: {authorization}',\n 'Accept: application/json',\n 'Content-Type: application/json'\n ),\n));\n\n$response = curl_exec($curl);\ncurl_close($curl);\n\necho $response;\n?>\n" }, "Generate email template preview JavaScript":{ "summary":"Generate email template preview JavaScript", "description":"Generate email template preview JavaScript", "value":"\nconst payload = {\n \"placeholders\": {\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n }\n};\n\nfetch('https://{baseUrl}/email/1/templates/{templateId}/preview', {\n method: 'POST',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error)); \n" }, "Generate email template preview NodeJs":{ "summary":"Generate email template preview NodeJs", "description":"Generate email template preview NodeJs", "value":"\nconst https = require('follow-redirects').https;\n\n// Prepare the JSON payload\nconst data = JSON.stringify({\n \"placeholders\": {\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n }\n});\n\n// Prepare options for the request\nconst options = {\n method: 'POST',\n hostname: '{baseUrl}',\n path: '/email/1/templates/{templateId}/preview',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Content-Length': Buffer.byteLength(data)\n },\n maxRedirects: 20\n};\n\n// Send the request\nconst req = https.request(options, function(res) {\n let chunks = [];\n\n res.on('data', function(chunk) {\n chunks.push(chunk);\n });\n\n res.on('end', function() {\n const body = Buffer.concat(chunks);\n console.log(body.toString());\n });\n\n res.on('error', function(error) {\n console.error(error);\n });\n});\n\n// Write the JSON body to the request\nreq.write(data);\nreq.end(); \n" }, "Generate email template preview Ruby":{ "summary":"Generate email template preview Ruby", "description":"Generate email template preview Ruby", "value":"\nrequire 'net/http'\nrequire 'json'\nrequire 'uri'\n\nurl = URI(\"https://{baseUrl}/email/1/templates/{templateId}/preview\")\n\n# Prepare the JSON payload\npayload = {\n \"placeholders\" => {\n \"firstName\" => \"John\",\n \"lastName\" => \"Doe\"\n }\n}\n\n# Initialize Net::HTTP\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\n# Create the POST request\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Authorization\"] = \"{authorization}\"\nrequest[\"Accept\"] = \"application/json\"\nrequest[\"Content-Type\"] = \"application/json\"\nrequest.body = payload.to_json\n\n# Send the request\nresponse = https.request(request)\n\n# Print the response body\nputs response.body \n" } } } } }, "responses":{ "200":{ "description":"OK", "content":{ "text/html":{ "schema":{ "type":"string" }, "examples":{ "Response example":{ "summary":"Response example", "value":"Hello, John Doe" } } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/templates/{templateId}/attachments":{ "get":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Get email template attachments", "description":"Retrieves a list of attachments associated with a specific email template.", "operationId":"get-email-template-attachments", "parameters":[ { "name":"templateId", "in":"path", "description":"Unique identifier (ID) of the email template.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "responses":{ "200":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.AttachmentList" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":10, "numberOfTimeUnits":0, "timeUnit":"s" } ] }, "post":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Upload email template attachment", "description":"Uploads an attachment to a specific email template.", "operationId":"upload-email-template-attachment", "parameters":[ { "name":"templateId", "in":"path", "description":"Unique identifier (ID) of the email template.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "requestBody":{ "content":{ "multipart/form-data":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Base64EncodedFile" }, "examples":{ "Upload template attachment using cURL":{ "summary":"Upload template attachment using cURL", "description":"Upload template attachment using cURL", "value":"\ncurl -X POST 'https://{baseUrl}/email/1/templates/{templateId}/attachments' \\\n -H 'Authorization: {authorization}' \\\n -H 'Accept: application/json' \\\n -F 'fileName=attachment.pdf' \\\n -F 'contentType=application/pdf' \\\n -F 'data={base64encodedData}' \\\n" }, "Upload template attachment using Java":{ "summary":"Upload template attachment using Java", "description":"Upload template attachment using Java", "value":"\nOkHttpClient client = new OkHttpClient().newBuilder().build();\n\nMultipartBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)\n .addFormDataPart(\"fileName\", \"attachment.pdf\")\n .addFormDataPart(\"contentType\", \"application/pdf\")\n .addFormDataPart(\"data\", \"{base64encodedData}\")\n .build();\n \nRequest request = new Request.Builder()\n .url(\"https://{baseUrl}/email/1/templates/{templateId}/attachments\")\n .method(\"POST\", body)\n .addHeader(\"Authorization\", \"{authorization}\")\n .addHeader(\"Accept\", \"application/json\")\n .build();\n \nResponse response = client.newCall(request).execute();\nSystem.out.println(response.body().string());\n" }, "Upload template attachment using C#":{ "summary":"Upload template attachment using C#", "description":"Upload template attachment using C#", "value":"\nvar options = new RestClientOptions(\"{baseUrl}\")\n{\n MaxTimeout = -1,\n};\nvar client = new RestClient(options);\n\nvar request = new RestRequest(\"POST\", Method.POST);\nrequest.AddHeader(\"Authorization\", \"{authorization}\");\nrequest.AddHeader(\"Accept\", \"application/json\");\n\n// Create a multipart form-data content\nvar formData = new MultipartFormDataContent();\nformData.Add(new StringContent(\"attachment.pdf\"), \"fileName\");\nformData.Add(new StringContent(\"application/pdf\"), \"contentType\");\nformData.Add(new StringContent({base64encoded_data}), \"data\");\n\n// Add the form data to the request\nrequest.AddBody(formData);\n\n// Execute the request\nRestResponse response = await client.ExecuteAsync(request);\n\n// Output the response\nConsole.WriteLine(response.Content);\n" }, "Upload template attachment using Go":{ "summary":"Upload template attachment using Go", "description":"Upload template attachment using Go", "value":"\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"mime/multipart\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://{baseUrl}/email/1/templates/{templateId}/attachments\"\n\tmethod := \"POST\"\n\n\t// Create a buffer and a multipart writer\n\tvar requestBody bytes.Buffer\n\twriter := multipart.NewWriter(&requestBody)\n\n\t// Add fields to the multipart form-data\n\twriter.WriteField(\"fileName\", \"attachment.pdf\")\n writer.WriteField(\"contentType\", \"application/pdf\")\n writer.WriteField(\"data\", \"{base64encodedData}\")\n\n\t// Close the writer to finish constructing the body\n\twriter.Close()\n\n\t// Create the request\n\treq, err := http.NewRequest(method, url, &requestBody)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\n\t// Set necessary headers\n\treq.Header.Set(\"Authorization\", \"{authorization}\")\n\treq.Header.Set(\"Accept\", \"application/json\")\n\treq.Header.Set(\"Content-Type\", writer.FormDataContentType())\n\n\t// Send the request\n\tclient := &http.Client{}\n\tres, err := client.Do(req)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tdefer res.Body.Close()\n\n\t// Read and output the response\n\tbody, err := ioutil.ReadAll(res.Body)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tfmt.Println(string(body))\n}\n" }, "Upload template attachment using Python":{ "summary":"Upload template attachment using Python", "description":"Upload template attachment using Python", "value":"\nimport requests\n\nurl = \"https://{baseUrl}/email/1/templates/{templateId}/attachments\"\nheaders = {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n}\n\n# Multipart form data\nfiles = {\n 'fileName': (None, 'attachment.pdf'),\n 'contentType': (None, 'application/pdf'),\n 'data': (None, '{base64encodedData}')\n}\n\nresponse = requests.post(url, headers=headers, files=files)\n\nprint(response.text)\n" }, "Upload template attachment using PHP":{ "summary":"Upload template attachment using PHP", "description":"Upload template attachment using PHP", "value":"\n 'attachment.pdf',\n 'contentType' => 'application/pdf',\n 'data' => '{base64encodedData}'\n);\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://{baseUrl}/email/1/templates/{templateId}/attachments',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => '',\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 0,\n CURLOPT_FOLLOWLOCATION => true,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => 'POST',\n CURLOPT_POSTFIELDS => $data,\n CURLOPT_HTTPHEADER => array(\n 'Authorization: {authorization}',\n 'Accept: application/json'\n ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n?>\n" }, "Upload template attachment using JavaScript":{ "summary":"Upload template attachment using JavaScript", "description":"Upload template attachment using JavaScript", "value":"\nconst formData = new FormData();\nformData.append('fileName', 'attachment.pdf');\nformData.append('contentType', 'application/pdf');\nformData.append('data', '{base64encodedData}');\n\nfetch('https://{baseUrl}/email/1/templates/{templateId}/attachments', {\n method: '{METHOD}',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json'\n },\n body: formData\n})\n .then(response => response.json())\n .then(data => console.log(data))\n .catch(error => console.error('Error:', error));\n" }, "Upload template attachment using NodeJs":{ "summary":"Upload template attachment using NodeJs", "description":"Upload template attachment using NodeJs", "value":"\nconst https = require('follow-redirects').https;\nconst FormData = require('form-data');\nconst fs = require('fs');\n\nconst form = new FormData();\nform.append('fileName', 'attachment.pdf');\nform.append('contentType', 'application/pdf');\nform.append('data', '{base64encodedData}');\n\n// Prepare options for the request\nconst options = {\n method: 'POST',\n hostname: '{baseUrl}',\n path: '/email/1/templates/{templateId}/attachments',\n headers: {\n 'Authorization': '{authorization}',\n 'Accept': 'application/json',\n ...form.getHeaders() // This automatically includes 'Content-Type' and boundary\n },\n maxRedirects: 20\n};\n\n// Send the request\nconst req = https.request(options, function(res) {\n let chunks = [];\n\n res.on('data', function(chunk) {\n chunks.push(chunk);\n });\n\n res.on('end', function() {\n const body = Buffer.concat(chunks);\n console.log(body.toString());\n });\n\n res.on('error', function(error) {\n console.error(error);\n });\n});\n\n// Pipe the form data into the request body\nform.pipe(req);\n" }, "Upload template attachment using Ruby":{ "summary":"Upload template attachment using Ruby", "description":"Upload template attachment using Ruby", "value":"\nrequire 'net/http'\nrequire 'json'\nrequire 'mime/types'\nrequire 'multipart/post'\n\nurl = URI(\"https://{baseUrl}/email/1/templates/{templateId}/attachments\")\n\n# Prepare the data as a hash\ndata = {\n \"fileName\" => \"attachment.pdf\",\n \"contentType\" => \"application/pdf\",\n \"data\" => \"{base64encodedData}\"\n}\n\n# Prepare the multipart data\nmultipart_data = Multipart::Post.prepare_multipart(data)\n\n# Initialize Net::HTTP for the request\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\n# Create the request\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Authorization\"] = \"{authorization}\"\nrequest[\"Accept\"] = \"application/json\"\nrequest[\"Content-Type\"] = \"multipart/form-data; boundary=#{multipart_data.boundary}\"\nrequest.body = multipart_data.body\n\n# Send the request\nresponse = https.request(request)\n\n# Print the response body\nputs response.read_body \n" } } } } }, "responses":{ "201":{ "description":"OK", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Attachment" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] } }, "/email/1/templates/{templateId}/attachments/{attachmentId}":{ "delete":{ "tags":[ "channels", "email", "email-templates" ], "summary":"Delete email template attachment", "description":"Removes a specific attachment from an email template.", "operationId":"delete-email-template-attachment", "parameters":[ { "name":"attachmentId", "in":"path", "description":"Attachment ID.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"string" } }, { "name":"templateId", "in":"path", "description":"Template ID.", "required":true, "style":"simple", "explode":false, "schema":{ "type":"integer", "format":"int64" } } ], "responses":{ "204":{ "description":"No content", "content":{ "*/*":{ "schema":{ "type":"object" } } } }, "400":{ "description":"Bad request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "examples":{ "Bad request":{ "summary":"Bad request", "value":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[ { "property":"property.path", "violation":"Violation message." } ], "resources":[] } } } } } }, "401":{ "$ref":"#/components/responses/ApiError401" }, "403":{ "$ref":"#/components/responses/ApiError403" }, "404":{ "$ref":"#/components/responses/ApiError404" }, "429":{ "$ref":"#/components/responses/ApiError429" }, "500":{ "$ref":"#/components/responses/ApiError500" } }, "security":[ { "IBSSOTokenHeader":[] }, { "APIKeyHeader":[] }, { "Basic":[] }, { "OAuth2":[] } ], "x-scopes":[ "email:manage", "email:templates:manage" ], "x-throttling-info":[ { "type":"time", "numberOfRequests":1, "numberOfTimeUnits":0, "timeUnit":"s" } ] } } }, "components":{ "schemas":{ "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.AddDomainRequest":{ "type":"object", "properties":{ "domainName":{ "type":"string", "description":"Unique name for the domain.", "example":"example.com", "maxLength":100, "maximum":100, "minLength":0 }, "dkimKeyLength":{ "type":"integer", "format":"int32", "default":2048, "description":"Value for DKIM key length.", "enum":[ 1024, 2048 ], "example":1024 }, "targetedDailyTraffic":{ "type":"integer", "format":"int64", "description":"Targeted daily traffic.", "example":1000, "minimum":1 }, "applicationId":{ "type":"string", "description":"Required for application use in a send request for outbound traffic. Returned in notification events." }, "entityId":{ "type":"string", "description":"Required for entity use in a send request for outbound traffic. Returned in notification events." } }, "required":[ "domainName", "targetedDailyTraffic" ], "title":"AddDomainRequest" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.AllDomainsResponse":{ "type":"object", "properties":{ "paging":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Paging" }, "results":{ "type":"array", "description":"List of domains that belong to the account.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DomainResponse" } } }, "title":"AllDomainsResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ApiErrorResponse":{ "type":"object", "properties":{ "requestError":{ "$ref":"#/components/schemas/ApiRequestError" } }, "title":"ApiErrorResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ApiReport":{ "type":"object", "properties":{ "applicationId":{ "type":"string", "description":"The Application ID sent in the email request." }, "entityId":{ "type":"string", "description":"The Entity ID sent in the email request." }, "bulkId":{ "type":"string", "description":"The ID that uniquely identifies bulks of request." }, "messageId":{ "type":"string", "description":"The ID that uniquely identifies the sent email request." }, "to":{ "type":"string", "description":"The recipient email address." }, "sentAt":{ "type":"string", "format":"date-time", "description":"Tells when the email was initiated. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.", "example":"2021-01-02T01:00:00.123Z" }, "doneAt":{ "type":"string", "format":"date-time", "description":"Tells when the email request was processed by Infobip.", "example":"2021-01-02T01:00:00.123Z" }, "messageCount":{ "type":"integer", "format":"int32", "description":"Email request count." }, "attemptCount":{ "type":"integer", "format":"int32", "description":"Number of times delivery was attempted for the email." }, "timeToFirstAttempt":{ "type":"integer", "format":"int64", "description":"This is the time in milliseconds between accepting the request and making the first delivery attempt to the destination." }, "price":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Price" }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Status" }, "error":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Error" } }, "title":"ApiReport" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ApiReportsResponse":{ "type":"object", "properties":{ "results":{ "type":"array", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ApiReport" } } }, "title":"ApiReportsResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BlocklistConfigurationLevel":{ "type":"string", "description":"Defines the level at which Infobip stores unsubscribe preferences.\n\nNote: When you change the unsubscribe configuration from a more global level (such as FROM_DOMAIN) to a more specific level (such as FROM_SENDER), remember that anyone who previously unsubscribed at the domain level chose to stop receiving all messages from your domain. These existing unsubscribe records will not automatically update to reflect the new sender-level setting. As a result, individuals who unsubscribed from your domain will continue to not receive messages, even after the change. To prevent confusion and respect user preferences, carefully manage and, if necessary, update these records when altering unsubscribe settings.", "enum":[ "FROM_SENDER", "FROM_DOMAIN" ], "example":"FROM_SENDER", "title":"BlocklistConfigurationLevel" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkInfo":{ "type":"object", "properties":{ "bulkId":{ "type":"string", "description":"The ID that uniquely identifies the message within the bulk." }, "sendAt":{ "type":"string", "format":"date-time", "description":"Date and time when the email is to be sent. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.", "example":"2021-01-02T01:00:00.123Z" } }, "required":[ "bulkId", "sendAt" ], "title":"BulkInfo" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkRescheduleRequest":{ "type":"object", "properties":{ "sendAt":{ "type":"string", "format":"date-time", "description":"Date and time when the email is to be sent. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.", "example":"2021-01-02T01:00:00.123Z" } }, "required":[ "sendAt" ], "title":"BulkRescheduleRequest" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkRescheduleResponse":{ "type":"object", "properties":{ "bulkId":{ "type":"string", "description":"The ID that uniquely identifies the message within the bulk." }, "sendAt":{ "type":"string", "format":"date-time", "description":"Date and time when the email is to be sent. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.", "example":"2021-01-02T01:00:00.123Z" } }, "required":[ "bulkId", "sendAt" ], "title":"BulkRescheduleResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkScheduleResponse":{ "type":"object", "properties":{ "externalBulkId":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk." }, "bulks":{ "type":"array", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkInfo" } } }, "required":[ "bulks", "externalBulkId" ], "title":"BulkScheduleResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatus":{ "type":"string", "description":"Status of scheduled email messages.", "enum":[ "PENDING", "PAUSED", "PROCESSING", "CANCELED", "FINISHED", "FAILED" ], "title":"BulkStatus" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatusInfo":{ "type":"object", "properties":{ "bulkId":{ "type":"string", "description":"The ID that uniquely identifies the message within the bulk." }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatus" } }, "required":[ "bulkId", "status" ], "title":"BulkStatusInfo" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatusResponse":{ "type":"object", "properties":{ "externalBulkId":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk." }, "bulks":{ "type":"array", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatusInfo" } } }, "required":[ "bulks", "externalBulkId" ], "title":"BulkStatusResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkUpdateStatusRequest":{ "type":"object", "properties":{ "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatus" } }, "required":[ "status" ], "title":"BulkUpdateStatusRequest" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkUpdateStatusResponse":{ "type":"object", "properties":{ "bulkId":{ "type":"string", "description":"The ID that uniquely identifies the message within the bulk." }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BulkStatus" } }, "required":[ "bulkId", "status" ], "title":"BulkUpdateStatusResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ClientPriority":{ "type":"string", "description":"Client priority set on request. Must be 'HIGH', 'STANDARD' or 'LOW'.", "enum":[ "HIGH", "STANDARD", "LOW" ], "title":"ClientPriority" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.CursorPageInfo":{ "type":"object", "description":"Cursor information.", "properties":{ "limit":{ "type":"integer", "format":"int32", "description":"Requested limit." }, "nextCursor":{ "type":"string", "description":"The `cursor` value you will use in your next request to fetch the subsequent set of results." } }, "readOnly":true, "title":"CursorPageInfo" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DeliveryDay":{ "type":"string", "description":"Days of the week which are included in the delivery time window. At least one day must be provided. Separate multiple days with a comma.", "enum":[ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ], "title":"DeliveryDay" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DeliveryTime":{ "type":"object", "description":"The exact time of the day. The time is expressed in the UTC time zone.", "properties":{ "hour":{ "type":"integer", "format":"int32", "description":"Hour when the time window opens when used in the `from` property or closes when used in the `to` property.", "maximum":23, "minimum":0 }, "minute":{ "type":"integer", "format":"int32", "description":"Minute when the time window opens when used in the `from` property or closes when used in the `to` property.", "maximum":59, "minimum":0 } }, "required":[ "hour", "minute" ], "title":"DeliveryTime" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DeliveryTimeWindow":{ "type":"object", "description":"Sets specific message delivery window outside of which messages won't be delivered. Often, used when there are restrictions on when messages can be sent. The exact time of the day to start sending messages can be defined using the `from` property. The exact time of the day to end sending messages can be defined using the `to` property. Properties `from` and `to` should be both provided with the minimum 1 hour difference or omitted.", "properties":{ "days":{ "type":"array", "description":"Days of the week which are included in the delivery time window. At least one day must be provided. Separate multiple days with a comma.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DeliveryDay" } }, "from":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DeliveryTime" }, "to":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DeliveryTime" } }, "required":[ "days" ], "title":"DeliveryTimeWindow" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DnsRecordResponse":{ "type":"object", "description":"Records for the domain.", "properties":{ "recordType":{ "type":"string", "description":"Type of the record." }, "name":{ "type":"string", "description":"Name of the record." }, "expectedValue":{ "type":"string", "description":"Expected value to be set for the given record." }, "verified":{ "type":"boolean", "description":"Boolean value representing if the record is verified or not." } }, "title":"DnsRecordResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DomainResponse":{ "type":"object", "description":"Detailed domain information.", "properties":{ "domainId":{ "type":"integer", "format":"int64", "description":"Id of the domain.", "example":1 }, "domainName":{ "type":"string", "description":"Name of the domain.", "example":"example.com" }, "active":{ "type":"boolean", "description":"Activation status of the domain.", "example":false }, "tracking":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.TrackingResponse" }, "dnsRecords":{ "type":"array", "description":"DNS records for the domain.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DnsRecordResponse" } }, "blocked":{ "type":"boolean", "description":"Status if the domain is blocked.", "example":false }, "createdAt":{ "type":"string", "format":"date-time", "description":"Date the domain was created. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.", "example":"2021-01-02T01:00:00.123Z" }, "blocklistConfigurationLevel":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.BlocklistConfigurationLevel" } }, "title":"DomainResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailDeliveryReport":{ "type":"object", "description":"Collection of email delivery reports, one per every message.", "properties":{ "bulkId":{ "type":"string", "description":"Unique ID assigned to the request if messaging multiple recipients or sending multiple messages via a single API request." }, "price":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessagePrice" }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageStatus" }, "error":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageError" }, "messageId":{ "type":"string", "description":"Unique message ID." }, "to":{ "type":"string", "description":"Message destination address." }, "sender":{ "type":"string", "description":"The sender ID which can be alphanumeric or numeric (e.g., `CompanyName`)." }, "sentAt":{ "type":"string", "format":"date-time", "description":"Date and time when the message was sent. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ." }, "doneAt":{ "type":"string", "format":"date-time", "description":"Date and time when the Infobip services finished processing the message (i.e., delivered to the destination, network, etc.). Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ." }, "messageCount":{ "type":"integer", "format":"int32", "description":"The number of sent messages." }, "callbackData":{ "type":"string", "description":"Callback data sent through ‛callbackData‛ field when sending message." }, "platform":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Platform" }, "campaignReferenceId":{ "type":"string", "description":"ID of a campaign that was sent in the message." }, "attemptCount":{ "type":"integer", "format":"int32", "description":"Number of times delivery was attempted for the email." }, "timeToFirstAttempt":{ "type":"integer", "format":"int64", "description":"This is the time in milliseconds between accepting the request and making the first delivery attempt to the destination." } }, "title":"EmailDeliveryReport" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailDeliveryReports":{ "type":"object", "properties":{ "emailResults":{ "type":"array", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailDeliveryReport" }, "writeOnly":true }, "results":{ "type":"array", "description":"Collection of email delivery reports, one per every message.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailDeliveryReport" } } }, "required":[ "results" ], "title":"EmailDeliveryReports" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailGroupDestination":{ "type":"object", "description":"An array of destination objects for where messages are being sent. A valid destination is required.\n\n Note: Maximum number of recipients is 1000 overall including `to`, `cc` and `bcc` field.", "properties":{ "to":{ "type":"array", "description":"List of TO recipient email addresses.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailToDestination" } }, "cc":{ "type":"array", "description":"List of CC recipient email addresses.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailToDestination" } }, "bcc":{ "type":"array", "description":"List of BCC recipient email addresses.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailToDestination" } }, "replyTo":{ "type":"string", "description":"Email address to which recipients of the email can reply." }, "preserveRecipients":{ "type":"boolean", "default":false, "description":"When this option is set to `true`, all recipients in the `to` field will be able to see the entire list of\nrecipients who received the email, and the response will include a single `messageId`.\nIf the option is set to `false` , each recipient will only see their own email address, and the response will provide a unique `messageId`\nfor each individual recipient." } }, "required":[ "to" ], "title":"EmailGroupDestination" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailIps":{ "type":"object", "description":"IP options per message.", "properties":{ "ipPoolId":{ "type":"string", "description":"The ID of the IP pool that will be used to send the email." } }, "title":"EmailIps" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailLog":{ "type":"object", "description":"Array of email logs, one object per each email request.", "properties":{ "applicationId":{ "type":"string", "description":"The Application ID sent in the email request." }, "entityId":{ "type":"string", "description":"The Entity ID sent in the email request." }, "bulkId":{ "type":"string", "description":"The ID that uniquely identifies the request." }, "messageId":{ "type":"string", "description":"The ID that uniquely identifies the sent email request." }, "to":{ "type":"string", "description":"The recipient email address." }, "from":{ "type":"string", "description":"From email address." }, "text":{ "type":"string", "description":"The text from email body." }, "sentAt":{ "type":"string", "format":"date-time", "description":"Tells when the email was initiated. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`. ", "example":"2021-01-02T01:00:00.123Z" }, "doneAt":{ "type":"string", "format":"date-time", "description":"Date and time when the Infobip services finished processing the email (i.e. delivered to the destination, waiting for delivery, etc.). ", "example":"2021-01-02T01:00:00.123Z" }, "messageCount":{ "type":"integer", "format":"int32", "description":"Email request count." }, "price":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Price" }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Status" }, "error":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Error" } }, "title":"EmailLog" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailLogResponse":{ "type":"object", "properties":{ "results":{ "type":"array", "description":"Array of email logs, one object per each email request.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailLog" } } }, "title":"EmailLogResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaAttachment":{ "type":"object", "description":"File attachments.", "discriminator":{ "propertyName":"type", "mapping":{ "uploadedReference":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaUploadedReference", "binary":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaBinaryAttachment" } }, "properties":{ "type":{ "type":"string" } }, "required":[ "type" ], "title":"EmailMediaAttachment" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaBinaryAttachment":{ "type":"object", "allOf":[ { "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaAttachment" }, { "type":"object", "properties":{ "content":{ "type":"string", "format":"byte", "description":"File content as a Base64-encoded byte array." }, "contentType":{ "type":"string", "description":"Content type." }, "fileName":{ "type":"string", "description":"File name." }, "password":{ "type":"string", "description":"Optional password used to encrypt PDF attachments. If provided, the generated PDF will be password-protected. Password protection can be applied exclusively to PDF files." } } } ], "required":[ "content", "contentType", "fileName" ], "title":"EmailMediaBinaryAttachment" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaBinaryImage":{ "type":"object", "allOf":[ { "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaInlineImage" }, { "type":"object", "properties":{ "content":{ "type":"string", "format":"byte", "description":"File content as a Base64-encoded byte array." }, "contentType":{ "type":"string", "description":"Content type." }, "fileName":{ "type":"string", "description":"File name." } } } ], "required":[ "content", "contentType", "fileName" ], "title":"EmailMediaBinaryImage" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaInlineImage":{ "type":"object", "description":"Allows for inserting an image file inside the HTML code of the email by using `cid:FILENAME` instead of providing an external link to the image.", "discriminator":{ "propertyName":"type", "mapping":{ "uploadedReference":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaUploadedReference", "binary":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaBinaryImage" } }, "properties":{ "type":{ "type":"string" } }, "required":[ "type" ], "title":"EmailMediaInlineImage" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaUploadedReference":{ "type":"object", "allOf":[ { "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaAttachment" }, { "type":"object", "properties":{ "contentId":{ "type":"string", "description":"ID of previously uploaded binary content.\n[Upload binary content](https://infobip.com/docs/api/channels/email/upload-binary-content).", "writeOnly":true } } }, { "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaInlineImage" } ], "required":[ "contentId" ], "title":"EmailMediaUploadedReference" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessage":{ "type":"object", "description":"An array of message objects of a single message or multiple messages sent under one bulk ID.", "properties":{ "sender":{ "type":"string", "description":"Email address with optional sender name. \n\n Note: This field is required if `templateId` is not present." }, "destinations":{ "type":"array", "description":"An array of destination objects for where messages are being sent. A valid destination is required.\n\n Note: Maximum number of recipients is 1000 overall including `to`, `cc` and `bcc` field.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailGroupDestination" } }, "content":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessageContent" }, "options":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessageOptions" }, "webhooks":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Webhooks" }, "ips":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailIps" }, "placeholdersMasking":{ "type":"array", "description":"Options to full or partially mask placeholders.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.PlaceholderMasking" } }, "storage":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailStorage" } }, "required":[ "content", "destinations" ], "title":"EmailMessage" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessageContent":{ "type":"object", "description":"Message content.", "properties":{ "subject":{ "type":"string", "description":"Message subject.\n\nNote: This field is required if `templateId` is not present.", "maxLength":1000, "minLength":1 }, "text":{ "type":"string", "description":"Body of the message." }, "html":{ "type":"string", "description":"The message's body in HTML format. If both `html` and `text` fields are included, the `text` field will be disregarded, and the message will be sent using the `html` content." }, "ampHtml":{ "type":"string", "description":"The message's body in AMP HTML format. If you include `ampHtml`, you must also include `html`, which will be displayed if AMP is not supported. Keep in mind that not all email clients support AMP HTML. For guidance on configuring the Gmail client, please visit this link: https://developers.google.com/gmail/ampemail/ ." }, "templateId":{ "type":"string", "description":"The Template ID with predefined email content created through the Infobip web interface or API. When `templateId` is specified, the `html` and `text` fields will be disregarded.\n\nNote: `templateId` only supports the `Broadcast` value; `Content` and `Flow` templates are not supported." }, "attachments":{ "type":"array", "description":"File attachments.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaAttachment" } }, "inlineImages":{ "type":"array", "description":"Allows for inserting an image file inside the HTML code of the email by using `cid:FILENAME` instead of providing an external link to the image.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMediaInlineImage" } }, "defaultPlaceholders":{ "type":"string", "description":"General placeholders: `{\"ph1\": \"Success\"}` will replace the key `{{ph1}}` with the value Success throughout the email, including the `subject`, `text`, and HTML. If there are multiple recipients in the To field, this placeholder will use the same value for the key ph1 for all recipients." }, "landingPagePlaceholders":{ "type":"string", "description":"Personalize Opt-Out Landing Page by inserting placeholders. Insert placeholder or tag while designing landing page. Value should be defined as: `{\"unsubscribe\": \"Unsubscribe\"}`" }, "optoutLandingPageId":{ "type":"string", "description":"The Opt-Out Landing Page ID specifies the page to be displayed when an end user clicks the unsubscribe link. If the ID is not provided, the default opt-out landing page will be used. Create a landing page over Infobip web interface and use its ID, for example, `1_23456.`" }, "templateLanguageVersion":{ "type":"string", "default":"1", "description":"Indicates the version of the template language to be used in the current message template. Use version 1 for the older template language and version 2 to access features of the new template language. If not specified, version 1 will be used by default." }, "headers":{ "type":"string", "description":"Additional email headers for customization that can be provided in a form of JSON. Example: `headers={\"X-CustomHeader\": \"Header value\"}`.\n\nThere are a few exceptions of headers which are not adjustable through this option: `To`, `Cc`, `Bcc`, `From`, `Subject`, `Content-Type`, `DKIM-Signature`, `Content-Transfer-Encoding`, `Return-Path`, `MIME-Version`" } }, "title":"EmailMessageContent" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessageOptions":{ "type":"object", "description":"Message options.", "properties":{ "platform":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Platform" }, "validityPeriod":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ValidityPeriod" }, "deliveryTimeWindow":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.DeliveryTimeWindow" }, "campaignReferenceId":{ "type":"string", "description":"ID that allows you to track, analyze, and show an aggregated overview and the performance of individual campaigns per sending channel.", "maxLength":255, "minLength":0 } }, "title":"EmailMessageOptions" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessageRequestOptions":{ "type":"object", "description":"Options applicable to all messages in the request.", "properties":{ "schedule":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailRequestSchedulingSettings" }, "tracking":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailUrlOptions" }, "clientPriority":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ClientPriority" } }, "title":"EmailMessageRequestOptions" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailRequest":{ "type":"object", "properties":{ "messages":{ "type":"array", "description":"An array of message objects of a single message or multiple messages sent under one bulk ID.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessage" } }, "options":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailMessageRequestOptions" } }, "required":[ "messages" ], "title":"EmailRequest" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailRequestSchedulingSettings":{ "type":"object", "description":"Options for scheduling a message.", "properties":{ "bulkId":{ "type":"string", "description":"Unique ID assigned to the request if messaging multiple recipients or sending multiple messages via a single API request. If not provided, it will be auto-generated and returned in the API response.", "maxLength":100, "minLength":0 }, "sendAt":{ "type":"string", "description":"Date and time when the message is to be sent. Used for scheduled messages. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`, and can only be scheduled for no later than 5 days in advance." } }, "title":"EmailRequestSchedulingSettings" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailResponse":{ "type":"object", "properties":{ "bulkId":{ "type":"string", "description":"Unique ID assigned to the request if messaging multiple recipients or sending multiple messages via a single API request. If not provided, it will be auto-generated and returned in the API response. Typically used for fetching delivery reports and message logs." }, "messages":{ "type":"array", "description":"An array of message objects of a single message or multiple messages sent under one bulk ID.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageResponseMessageResponseDetails" } } }, "required":[ "messages" ], "title":"EmailResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailStatus":{ "type":"object", "description":"Indicates whether the email is successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status.", "properties":{ "id":{ "type":"integer", "format":"int32", "description":"Status ID." }, "groupId":{ "type":"integer", "format":"int32", "description":"Status group ID." }, "groupName":{ "type":"string", "description":"Group name for the status." }, "name":{ "type":"string", "description":"Status name." }, "description":{ "type":"string", "description":"Human-readable description of the status." } }, "title":"EmailStatus" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailStorage":{ "type":"object", "description":"[Email storage options](https://www.infobip.com/docs/email/email-storage-and-retrieval) per message.", "properties":{ "skipPassive":{ "type":"boolean", "description":"Set to true to skip [passive email storage](https://www.infobip.com/docs/email/email-storage-and-retrieval/passive-email-storage) (long-term storage used for compliance, legal, or audit purposes).\n If `false` or not set, the account-level setting is used." }, "skipActive":{ "type":"boolean", "description":"Set to true to skip [active email storage](https://www.infobip.com/docs/email/email-storage-and-retrieval/active-email-storage) (short-term storage used for troubleshooting or support).\n If `false` or not set, the account-level setting is used." } }, "title":"EmailStorage" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailToDestination":{ "type":"object", "description":"List of BCC recipient email addresses.", "properties":{ "destination":{ "type":"string", "description":"Email address of the recipient in a form of `john.smith@somecompany.com`" }, "messageId":{ "type":"string", "description":"The ID that uniquely identifies the message sent to a recipient.", "maxLength":200, "minLength":0 }, "placeholders":{ "type":"string", "description":"As optional feature, a specific placeholder can be defined whose value will apply only for this destination. Value should be defined as: `{\"name\": \"John\"}`." } }, "required":[ "destination" ], "title":"EmailToDestination" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailUnificationLog":{ "type":"object", "description":"An array of message log results, one object per each message log entry.", "properties":{ "text":{ "type":"string", "description":"Message text." }, "sender":{ "type":"string", "description":"The sender ID which can be alphanumeric or numeric." }, "destination":{ "type":"string", "description":"Message destination address." }, "bulkId":{ "type":"string", "description":"Unique ID assigned to the request if messaging multiple recipients or sending multiple messages via a single API request.", "example":"BULK-ID-123-xyz" }, "messageId":{ "type":"string", "description":"Unique message ID for which a log is requested." }, "sentAt":{ "type":"string", "format":"date-time", "description":"Date and time when the message was sent. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ." }, "doneAt":{ "type":"string", "format":"date-time", "description":"Date and time when the Infobip services finished processing the message (i.e., delivered to the destination, network, etc.). Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ." }, "messageCount":{ "type":"integer", "format":"int32", "description":"The number of messages content was split to." }, "price":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessagePrice" }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageStatus" }, "error":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageError" }, "platform":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Platform" }, "campaignReferenceId":{ "type":"string", "description":"ID of a campaign that was sent in the message." } }, "title":"EmailUnificationLog" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailUrlOptions":{ "type":"object", "description":"Sets up [URL shortening](https://www.infobip.com/docs/url-shortening) and tracking feature.", "properties":{ "track":{ "type":"boolean", "description":"Enable or disable open and click tracking. Passing true will only enable tracking and the statistics will be visible in the web interface alone. This can be explicitly overridden by `trackClicks` and `trackOpens`." }, "trackOpens":{ "type":"boolean", "description":"This parameter enables or disables track open feature." }, "trackClicks":{ "type":"boolean", "description":"This parameter enables or disables track click feature." }, "trackingUrl":{ "type":"string", "description":"The URL on your callback server on which the open and click notifications will be sent. See [Tracking Notifications](https://www.infobip.com/docs/email/send-email-over-api#tracking-notifications) for details." }, "trackingPixelPosition":{ "type":"string", "default":"TOP", "description":"This parameter specifies the position of the open tracking pixel within the email content. Allowed values are `TOP` and `BOTTOM`. If no value is provided, the default is `TOP`." } }, "title":"EmailUrlOptions" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Error":{ "type":"object", "properties":{ "groupId":{ "type":"integer", "format":"int32" }, "groupName":{ "type":"string" }, "id":{ "type":"integer", "format":"int32" }, "name":{ "type":"string" }, "description":{ "type":"string" }, "permanent":{ "type":"boolean" } }, "title":"Error" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ErrorInfo":{ "type":"object", "description":"Indicates whether the error occurred during the query execution.", "properties":{ "id":{ "type":"integer", "format":"int32", "description":"Error ID." }, "name":{ "type":"string", "description":"Error name." }, "description":{ "type":"string", "description":"Human-readable description of the error." }, "groupId":{ "type":"integer", "format":"int32", "description":"Error group ID." }, "groupName":{ "type":"string", "description":"Error group name." }, "permanent":{ "type":"boolean", "description":"Indicates whether the error is permanent." } }, "title":"ErrorInfo" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.LogResponseEmailUnificationLog":{ "type":"object", "properties":{ "results":{ "type":"array", "description":"An array of message log results, one object per each message log entry.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailUnificationLog" } }, "cursor":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.CursorPageInfo" } }, "title":"LogResponseEmailUnificationLog" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageDeliveryReporting":{ "type":"object", "description":"Provides options for configuring the delivery report behavior.", "properties":{ "url":{ "type":"string", "description":"The URL on your call back server where a delivery report will be sent. If your URL becomes unavailable then the [retry cycle](https://www.infobip.com/docs/sms/sms-over-api#push-retry-cycle-notify-url) uses the following formula: `1min + (1min * retryNumber * retryNumber)`." }, "intermediateReport":{ "type":"boolean", "description":"The real-time intermediate delivery report containing GSM error codes, messages status, pricing, network and country codes, etc., which will be sent on your callback server. Defaults to `false`." }, "notify":{ "type":"boolean", "description":"Notify enables you to specify your preferences for receiving DLRs. If set to false, no DLR will be sent. Note: When no webhook is specified in the request and notify is set to 'true' or not defined, your Subscription settings will apply." } }, "title":"MessageDeliveryReporting" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageError":{ "type":"object", "description":"Indicates whether an [error](https://www.infobip.com/docs/essentials/response-status-and-error-codes#error-codes) occurred during the query execution.", "properties":{ "groupId":{ "type":"integer", "format":"int32", "description":"Error group ID." }, "groupName":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageErrorGroup" }, "id":{ "type":"integer", "format":"int32", "description":"Error ID." }, "name":{ "type":"string", "description":"[Error name](https://www.infobip.com/docs/essentials/response-status-and-error-codes#error-codes)." }, "description":{ "type":"string", "description":"Human-readable description of the error." }, "permanent":{ "type":"boolean", "description":"Indicates whether the error is recoverable or not." } }, "title":"MessageError" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageErrorGroup":{ "type":"string", "description":"Error group name that describes which category the error code belongs to.", "enum":[ "OK", "HANDSET_ERRORS", "USER_ERRORS", "OPERATOR_ERRORS" ], "title":"MessageErrorGroup" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageGeneralStatus":{ "type":"string", "description":"Status group name that describes which category the status code belongs to, i.e., [PENDING](https://www.infobip.com/docs/essentials/response-status-and-error-codes#pending-general-status-codes), [UNDELIVERABLE](https://www.infobip.com/docs/essentials/response-status-and-error-codes#undeliverable-general-status-codes), [DELIVERED](https://www.infobip.com/docs/essentials/response-status-and-error-codes#delivered-general-status-codes), [EXPIRED](https://www.infobip.com/docs/essentials/response-status-and-error-codes#expired-general-status-codes), [REJECTED](https://www.infobip.com/docs/essentials/response-status-and-error-codes#rejected-general-status-codes).", "enum":[ "ACCEPTED", "PENDING", "UNDELIVERABLE", "DELIVERED", "EXPIRED", "REJECTED" ], "title":"MessageGeneralStatus" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessagePrice":{ "type":"object", "description":"Sent message price.", "properties":{ "pricePerMessage":{ "type":"number", "description":"Price per one message." }, "currency":{ "type":"string", "description":"The currency in which the price is expressed." } }, "title":"MessagePrice" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageResponseDetails":{ "type":"object", "description":"Other details of the message.", "title":"MessageResponseDetails" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageResponseMessageResponseDetails":{ "type":"object", "description":"An array of message objects of a single message or multiple messages sent under one bulk ID.", "properties":{ "messageId":{ "type":"string", "description":"Unique message ID. If not provided, it will be auto-generated and returned in the API response." }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageStatus" }, "destination":{ "type":"string", "description":"The destination address of the message, i.e., its recipient." }, "details":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageResponseDetails" } }, "title":"MessageResponseMessageResponseDetails" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageStatus":{ "type":"object", "description":"Indicates the [status](https://www.infobip.com/docs/essentials/response-status-and-error-codes#api-status-codes) of the message and how to recover from an error should there be any.", "properties":{ "groupId":{ "type":"integer", "format":"int32", "description":"Status group ID." }, "groupName":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageGeneralStatus" }, "id":{ "type":"integer", "format":"int32", "description":"Status code ID." }, "name":{ "type":"string", "description":"[Status code](https://www.infobip.com/docs/essentials/response-status-and-error-codes#api-status-codes) name." }, "description":{ "type":"string", "description":"Human-readable description of the status." }, "action":{ "type":"string", "description":"Action to take to recover from the error." } }, "title":"MessageStatus" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Paging":{ "type":"object", "description":"Pagination details like page number, page size,etc.", "properties":{ "page":{ "type":"integer", "format":"int32" }, "size":{ "type":"integer", "format":"int32" }, "totalPages":{ "type":"integer", "format":"int32" }, "totalResults":{ "type":"integer", "format":"int32" } }, "title":"Paging" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.PlaceholderMasking":{ "type":"object", "description":"Options to full or partially mask placeholders.", "properties":{ "name":{ "type":"string", "description":"The placeholder name that needs to be masked.", "example":"ph1" }, "side":{ "type":"string", "default":"L", "description":"The side from which characters should be hidden. Options are `L` (left) or `R` (right)." }, "maskChar":{ "type":"string", "default":"*", "description":"The character used to replace the masked placeholders, e.g., `*`, `+`." }, "visibleChars":{ "type":"integer", "format":"int32", "default":0, "description":"The number of characters to leave visible. Ignored if a delimiter is specified. Defaults to 0 (i.e., all characters hidden) if not specified." }, "delimiter":{ "type":"string", "description":"Optional delimiter character (e.g., `@`, `/`). When specified, masking applies only to the part of the placeholder before or after the delimiter, depending on the `side` value. If this is set, the `visibleChars` field is ignored." }, "skipChars":{ "type":"array", "description":"A list of characters that should not be masked, even if they fall within the masked region. For example, if we want to mask `(385)-9134849` into `(***)-********`, we should include the characters `(`,`)` and `-` in this list to preserve the formatting. In this case, only digits will be masked while parentheses and dashes remain visible.", "items":{ "type":"string", "description":"A list of characters that should not be masked, even if they fall within the masked region. For example, if we want to mask `(385)-9134849` into `(***)-********`, we should include the characters `(`,`)` and `-` in this list to preserve the formatting. In this case, only digits will be masked while parentheses and dashes remain visible." } } }, "required":[ "name" ], "title":"PlaceholderMasking" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Platform":{ "type":"object", "description":"Platform options. For more details, see [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).", "properties":{ "entityId":{ "type":"string", "description":"Used when specifying an entity in outbound send requests. It is also returned in notification events. For detailed usage, refer to the [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).", "maxLength":255, "minLength":0 }, "applicationId":{ "type":"string", "description":"Used when specifying an application in outbound send requests. It is also returned in notification events. For detailed usage, refer to the [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).", "maxLength":255, "minLength":0 } }, "title":"Platform" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Price":{ "type":"object", "description":"Sent email price.", "properties":{ "pricePerMessage":{ "type":"number", "description":"Price per one email request." }, "currency":{ "type":"string", "description":"The currency in which the price is expressed." } }, "title":"Price" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.PriceInfo":{ "type":"object", "description":"Sent email price.", "properties":{ "pricePerMessage":{ "type":"number", "format":"double", "description":"Price per message." }, "currency":{ "type":"string", "description":"The currency in which the price is expressed." } }, "title":"PriceInfo" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ResponseDetails":{ "type":"object", "description":"List of message response details.", "properties":{ "to":{ "type":"string", "description":"The destination address of the message." }, "messageId":{ "type":"string", "description":"The ID that uniquely identifies a message response." }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SingleMessageStatus" } }, "required":[ "messageId", "status", "to" ], "title":"ResponseDetails" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Result":{ "type":"object", "properties":{ "entityId":{ "type":"string", "description":"Used when specifying an entity in outbound send requests. It is also returned in notification events. For detailed usage, refer to the [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management)." }, "applicationId":{ "type":"string", "description":"Used when specifying an application in outbound send requests. It is also returned in notification events. For detailed usage, refer to the [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management)." }, "campaignReferenceId":{ "type":"string", "description":"ID of a campaign that was sent in the message." }, "bulkId":{ "type":"string", "description":"The ID that uniquely identifies a list of email messages. This is either defined by user in the request or auto generated." }, "price":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.PriceInfo" }, "status":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.EmailStatus" }, "error":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ErrorInfo" }, "messageId":{ "type":"string", "description":"The ID that uniquely identifies the email sent to the recipient." }, "doneAt":{ "type":"string", "format":"date-time", "description":"Delivery date and time." }, "smsCount":{ "type":"integer", "format":"int32", "description":"The number of emails sent." }, "sentAt":{ "type":"string", "format":"date-time", "description":"Send date and time. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`." }, "attemptCount":{ "type":"integer", "format":"int32", "description":"Number of times delivery was attempted for the email." }, "timeToFirstAttempt":{ "type":"integer", "format":"int64", "description":"This is the time in milliseconds between accepting the request and making the first delivery attempt to the destination." }, "browserLink":{ "type":"string", "description":"Contains the link to the HTML sent to recipient. This will be present only if the _view in browser_ feature is used in the email.\n (Please note that this feature is not activated automatically for Email traffic sent over API. If you would like to utilize it please reach out to your Infobip person of contact.)" }, "sendingIp":{ "type":"string", "description":"The IP address that was used to send out the email." }, "smtp":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SmtpInfo" }, "callbackData":{ "type":"string", "description":"Callback data sent through `callbackData` field in fully featured email." }, "to":{ "type":"string", "description":"Destination email address." } }, "title":"Result" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SendMimeRequestSchema":{ "type":"object", "properties":{ "messageId":{ "type":"string", "description":"The ID that uniquely identifies the message sent to a recipient." }, "bulkId":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk.\nThis filter will enable you to query delivery reports for all the messages using just one request.\nYou will receive a `bulkId` in the response after sending an email request.\nIf you don't set your own `bulkId`, unique ID will be generated by our system and returned in the API response. (Optional Field)\")" }, "from":{ "type":"string", "description":"The email address specified in this field takes precedence over the From header in the MIME message.\nIf you leave this field empty, the From address in the MIME message will be used instead.\nIf you provide both values and they are different, their domains must match at the organizational level; otherwise, the request will be rejected.\n" }, "destinations":{ "type":"array", "description":"A list of recipient email addresses.\n
\nThe email addresses specified in this field takes precedence over the To, CC, and BCC headers in the MIME message.\nOnly the addresses in this list will receive the final email.\nIf you leave this field empty, To, CC, and BCC headers in the MIME message will be used instead.\n
\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "items":{ "type":"string", "description":"A list of recipient email addresses.\n
\nThe email addresses specified in this field takes precedence over the To, CC, and BCC headers in the MIME message.\nOnly the addresses in this list will receive the final email.\nIf you leave this field empty, To, CC, and BCC headers in the MIME message will be used instead.\n
\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "maximum":1000 }, "maximum":1000 }, "mimeMessage":{ "type":"string", "description":"This field accepts a complete email message serialized in the MIME format, conforming to RFC 5322 and MIME-related standards (RFCs 2045–2047, RFC 2183).\nThe MIME message must be correctly constructed per the following requirements as if it were being sent via traditional SMTP.\nThe entire MIME message (including headers and body) must be `base64-encoded` before being sent.\n

\n\nWhen using this field, these are the requirements:\n
\n**-** The message must consist of a set of header fields, followed by a blank line (CRLF), and then the message body\n
\n**-** All required and optional fields must be properly formatted with header-name, colon, and header-value\n
\n**-** If any MIME part contains non-7-bit-ASCII data (e.g., UTF-8 text, binaries), that part must be encoded\n
\n**-** If your message uses multipart content (attachments, alternative bodies, etc.), each MIME part must contain `Content-Type` header. For encoded parts, include `Content-Transfer-Encoding`. For attachments, include a valid `Content-Disposition`.\n

\nWe also support specifying additional headers in your MIME message, such as `List-Unsubscribe`, `List-Unsubscribe-Post`, `In-Reply-To`, `References` and `Message-ID`.\n" }, "intermediateReport":{ "type":"boolean", "description":"The real-time Intermediate delivery report that will be sent on your callback server." }, "notifyUrl":{ "type":"string", "description":"The URL on your callback server on which the Delivery report will be sent." }, "notifyContentType":{ "type":"string", "description":"Preferred Delivery report content type. Can be `application/json` or `application/xml`." }, "callbackData":{ "type":"string", "description":"Additional client data that will be sent on the notifyUrl.", "maximum":4000, "minimum":0 }, "trackingUrl":{ "type":"string", "description":"The URL on your callback server on which the open and click notifications will be sent. See [Tracking Notifications](https://www.infobip.com/docs/email/email-over-api/tracking-notifications) for details." }, "clientPriority":{ "type":"string", "default":"STANDARD", "description":"Adds a priority rating to this email message.\nAllowed values are `HIGH`, `STANDARD` and `LOW`.\nMessages with a higher priority value sent by your account are prioritized over messages with a lower priority value sent by your account.\nIf no priority value is provided, messages will be treated with `STANDARD` priority by default.\n" }, "applicationId":{ "type":"string", "description":"Required for application use in a send request for outbound traffic. Returned in notification events." }, "entityId":{ "type":"string", "description":"Required for entity use in a send request for outbound traffic. Returned in notification events." } }, "required":[ "mimeMessage" ], "title":"SendMimeRequestSchema" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SendRequestSchema":{ "type":"object", "properties":{ "from":{ "type":"string", "description":"Email address with optional sender name.\n\nNote: This field is required if `templateId` is not present." }, "to":{ "type":"array", "description":"Email address of the recipient in a form of `To=\"john.smith@somecompany.com\"`.\nAs optional feature on this field, a specific placeholder can be defined whose value will apply only for this destination. Given `To` value should look like:\n`To= {\"to\": \"john.smith@somecompany.com\",\"placeholders\": {\"name\": \"John\"}}`\n`To= {\"to\": \"alice.grey@somecompany.com\",\"placeholders\": {\"name\": \"Alice\"}}`.\n\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "items":{ "type":"string", "description":"Email address of the recipient in a form of `To=\"john.smith@somecompany.com\"`.\nAs optional feature on this field, a specific placeholder can be defined whose value will apply only for this destination. Given `To` value should look like:\n`To= {\"to\": \"john.smith@somecompany.com\",\"placeholders\": {\"name\": \"John\"}}`\n`To= {\"to\": \"alice.grey@somecompany.com\",\"placeholders\": {\"name\": \"Alice\"}}`.\n\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "maximum":1000 }, "maximum":1000 }, "cc":{ "type":"array", "description":"CC recipient email address.\nAs optional feature on this field, a specific placeholder can be defined whose value will apply only for this destination.\n\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "items":{ "type":"string", "description":"CC recipient email address.\nAs optional feature on this field, a specific placeholder can be defined whose value will apply only for this destination.\n\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "maximum":1000 }, "maximum":1000 }, "bcc":{ "type":"array", "description":"BCC recipient email address.\nAs optional feature on this field, a specific placeholder can be defined whose value will apply only for this destination.\n\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "items":{ "type":"string", "description":"BCC recipient email address.\nAs optional feature on this field, a specific placeholder can be defined whose value will apply only for this destination.\n\nNote: Maximum number of recipients per request is 1000 overall including to, cc and bcc field.", "maximum":1000 }, "maximum":1000 }, "subject":{ "type":"string", "description":"Message subject.\n\nNote: This field is required if `templateId` is not present.", "maximum":1000, "minimum":1 }, "text":{ "type":"string", "description":"Body of the message." }, "html":{ "type":"string", "description":"HTML body of the message. If `html` and `text` fields are present, the `text` field will be ignored and `html` will be delivered as a message body." }, "ampHtml":{ "type":"string", "description":"Amp HTML body of the message. If `ampHtml` is present, `html` is mandatory. Amp HTML is not supported by all the email clients. Please check this link for configuring gmail client https://developers.google.com/gmail/ampemail/." }, "templateId":{ "type":"integer", "format":"int64", "description":"Template ID used for generating email content. The template is created over Infobip web interface or via the [Infobip Templates API](https://www.infobip.com/docs/api/channels/email/templates). If `templateId` is present, then `html` and `text` values are ignored.\n\nNote: `templateId` only supports the value of `Broadcast`. `Content` and `Flow` are not supported." }, "attachment":{ "type":"array", "format":"binary", "description":"File attachment.", "items":{ "type":"string", "format":"binary", "description":"File attachment." } }, "inlineImage":{ "type":"array", "format":"binary", "description":"Allows for inserting an image file inside the HTML code of the email by using `cid:FILENAME` instead of providing an external link to the image.", "items":{ "type":"string", "format":"binary", "description":"Allows for inserting an image file inside the HTML code of the email by using `cid:FILENAME` instead of providing an external link to the image." } }, "intermediateReport":{ "type":"boolean", "description":"The real-time Intermediate delivery report that will be sent on your callback server." }, "notifyUrl":{ "type":"string", "description":"The URL on your callback server on which the Delivery report will be sent." }, "notifyContentType":{ "type":"string", "description":"Preferred Delivery report content type. Can be `application/json` or `application/xml`." }, "callbackData":{ "type":"string", "description":"Additional client data that will be sent on the notifyUrl.", "maximum":4000, "minimum":0 }, "track":{ "type":"boolean", "description":"Enable or disable open and click tracking. Passing true will only enable tracking and the statistics would be visible in the web interface alone. This can be explicitly overridden by `trackClicks` and `trackOpens`." }, "trackClicks":{ "type":"boolean", "description":"This parameter enables or disables track click feature.\n\nNote: Option to disable click tracking per URL is available. For detailed usage, please refer to the [documentation](https://www.infobip.com/docs/email/email-tracking-and-analytics/email-tracking-types#disable-click-tracking-on-urls-url-clicks)." }, "trackOpens":{ "type":"boolean", "description":"This parameter enables or disables track open feature." }, "trackingPixelPosition":{ "type":"string", "description":"This parameter specifies the position of the open tracking pixel within the email content.\nAllowed values are `TOP` and `BOTTOM`. If no value is provided, the default is `TOP`." }, "trackingUrl":{ "type":"string", "description":"The URL on your callback server on which the open and click notifications will be sent. See [Tracking Notifications](https://www.infobip.com/docs/email/email-over-api/tracking-notifications) for details." }, "bulkId":{ "type":"string", "description":"The ID that uniquely identifies the sent bulk. This filter will enable you to query delivery reports for all the messages using just one request. You will receive a `bulkId` in the response after sending an email request. If you don't set your own `bulkId`, unique ID will be generated by our system and returned in the API response. (Optional Field)" }, "messageId":{ "type":"string", "description":"The ID that uniquely identifies the message sent to a recipient. (Optional Field)" }, "campaignReferenceId":{ "type":"string", "description":"The ID that allows you to track, analyze, and show an aggregated overview and the performance of individual campaigns." }, "replyTo":{ "type":"string", "description":"Email address to which recipients of the email can reply." }, "defaultPlaceholders":{ "type":"string", "description":"General placeholder, given in a form of json example: `defaultPlaceholders={\"ph1\": \"Success\"}`, which will replace given key `{{ph1}}` with given value `Success` anywhere in the email (subject, text, html...). In case of more destinations in `To` field, this placeholder will resolve the same value for key `ph1`." }, "preserveRecipients":{ "type":"boolean", "default":false, "description":"If set to `true`, the `to` recipients will see the list of all other recipients to get the email and the response will return only one `messageId`. Otherwise, each recipient will see just their own email and the response will return a unique `messageId` for each email recipient." }, "sendAt":{ "type":"string", "format":"date-time", "description":"To schedule message at a given time. Time provided should be in UTC in the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ` and cannot exceed 30 days in the future.\n", "example":"2021-01-02T01:00:00.123Z" }, "landingPagePlaceholders":{ "type":"string", "description":"Personalize opt out landing page by inserting placeholders. Insert placeholder or tag while designing landing page." }, "landingPageId":{ "type":"string", "description":"The ID of an opt out landing page to be used and displayed once an end user clicks the unsubscribe link. If not present, default opt out landing page will be displayed. Create a landing page in your Infobip account and use its ID, e.g., `1_23456`." }, "templateLanguageVersion":{ "type":"string", "default":"1", "description":"Specifies template language version that will be used in the current message template. Use version 1 for previous version of template language. Use version 2 for features of the new template language. If not present version 1 will be used as default version. " }, "clientPriority":{ "type":"string", "default":"STANDARD", "description":"Adds a priority rating to this email message.\nAllowed values are `HIGH`, `STANDARD` and `LOW`.\nMessages with a higher priority value sent by your account are prioritized over messages with a lower priority value sent by your account.\nIf no priority value is provided, messages will be treated with `STANDARD` priority by default.\n" }, "applicationId":{ "type":"string", "description":"Required for application use in a send request for outbound traffic. Returned in notification events." }, "entityId":{ "type":"string", "description":"Required for entity use in a send request for outbound traffic. Returned in notification events." }, "headers":{ "type":"string", "description":"Additional email headers for customization that can be provided in a form of JSON. For example, you can override List-Unsubscribe header and provide your own custom one: `headers={\"List-Unsubscribe\": \"your unsubscribe link\", \"X-CustomHeader\": \"Header value\"}`.\n\nThere are a few exceptions of headers which are not adjustable through this option: `To`, `Cc`, `Bcc`, `From`, `Subject`,`Content-Type`, `DKIM-Signature`, `Content-Transfer-Encoding`, `Return-Path`, `MIME-Version`" }, "ipPoolId":{ "type":"string", "description":"The ID of the IP Pool which will be used for sending." }, "skipPassiveStorage":{ "type":"boolean", "description":"Set to true to skip [passive email storage](https://www.infobip.com/docs/email/email-storage-and-retrieval/passive-email-storage) (long-term storage used for compliance, legal, or audit purposes).\nIf `false` or not set, the account-level setting is used.\n" }, "skipActiveStorage":{ "type":"boolean", "description":"Set to true to skip [active email storage](https://www.infobip.com/docs/email/email-storage-and-retrieval/active-email-storage) (short-term storage used for troubleshooting or support).\nIf `false` or not set, the account-level setting is used.\n" } }, "required":[ "to" ], "title":"SendRequestSchema" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SendResponse":{ "type":"object", "properties":{ "bulkId":{ "type":"string", "description":"The ID that uniquely identifies a list of message responses." }, "messages":{ "type":"array", "description":"List of message response details.", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ResponseDetails" } } }, "required":[ "messages" ], "title":"SendResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SingleMessageStatus":{ "type":"object", "description":"Indicates the message status.", "properties":{ "groupId":{ "type":"integer", "format":"int32", "description":"Status group ID." }, "groupName":{ "type":"string", "description":"Status group name." }, "id":{ "type":"integer", "format":"int32", "description":"Status ID." }, "name":{ "type":"string", "description":"Status name." }, "description":{ "type":"string", "description":"Status description." } }, "required":[ "description", "groupId", "groupName", "id", "name" ], "title":"SingleMessageStatus" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.SmtpInfo":{ "type":"object", "description":"SMTP details for the sent email.", "properties":{ "response":{ "type":"string", "description":"SMTP server response for the sent email." } }, "title":"SmtpInfo" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Status":{ "type":"object", "description":"Indicates whether the initiated email has been successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status.", "properties":{ "groupId":{ "type":"integer", "format":"int32", "description":"Status group ID." }, "groupName":{ "type":"string", "description":"Status group name." }, "id":{ "type":"integer", "format":"int32", "description":"Status ID." }, "name":{ "type":"string", "description":"Status name." }, "description":{ "type":"string", "description":"Human-readable description of the status." }, "action":{ "type":"string", "description":"Action name." } }, "title":"Status" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.TrackingEventRequest":{ "type":"object", "properties":{ "open":{ "type":"boolean", "description":"Boolean value corresponding to whether opens for a message needs to be tracked or not.", "example":true }, "clicks":{ "type":"boolean", "description":"Boolean value corresponding to whether clicks for a message needs to be tracked or not.", "example":true }, "unsubscribe":{ "type":"boolean", "description":"Boolean value corresponding to whether unsubscribe for a message needs to be tracked or not.", "example":false } }, "title":"TrackingEventRequest" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.TrackingResponse":{ "type":"object", "description":"Tracking details of the domain.", "properties":{ "clicks":{ "type":"boolean", "description":"Indicates whether tracking of clicks is enabled." }, "opens":{ "type":"boolean", "description":"Indicates whether tracking of opens is enabled." }, "unsubscribe":{ "type":"boolean", "description":"Indicates whether tracking of unsubscribes is enabled." } }, "title":"TrackingResponse" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.UploadBinaryResult":{ "type":"object", "properties":{ "uploadedContentId":{ "type":"string", "description":"The ID that uniquely identifies the uploaded content.", "example":"B44419205B27012D82F3BAD7B7EB37..." } }, "title":"UploadBinaryResult" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ValidityPeriod":{ "type":"object", "description":"Message validity period. Once expired, the message won't be sent. Validity period longer than 48h is not supported. If exceeded, it will be automatically set to 48h.", "properties":{ "amount":{ "type":"integer", "format":"int32", "description":"Message validity period's value. If `timeUnit` is not set, it will default to `MINUTES`." }, "timeUnit":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ValidityPeriodTimeUnit" } }, "required":[ "amount" ], "title":"ValidityPeriod" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.ValidityPeriodTimeUnit":{ "type":"string", "default":"MINUTES", "description":"Message validity period time unit.", "enum":[ "SECONDS", "MINUTES", "HOURS" ], "title":"ValidityPeriodTimeUnit" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.WebhookDLRPayload":{ "type":"object", "properties":{ "results":{ "type":"array", "items":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Result" } } }, "title":"WebhookDLRPayload" }, "34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.Webhooks":{ "type":"object", "description":"Provides options for configuring message webhooks.", "properties":{ "delivery":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.MessageDeliveryReporting" }, "contentType":{ "type":"string", "description":"Preferred delivery report content type, `application/json` or `application/xml`." }, "callbackData":{ "type":"string", "description":"Additional data that can be used for identifying, managing, or monitoring a message. Data included here will also be automatically included in the message Delivery Report. The maximum value is 4000 characters.", "maxLength":4000, "minLength":0 } }, "title":"Webhooks" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Attachment":{ "type":"object", "properties":{ "id":{ "type":"string", "description":"Id of the attachment.", "example":"7BE07D39-C7DA-4ED4-9F45-33BDB8643AA1" }, "contentType":{ "type":"string", "description":"Content type of the attachment.", "example":"application/pdf" }, "fileName":{ "type":"string", "description":"Name of the attachment.", "example":"attachment.pdf" }, "size":{ "type":"integer", "format":"int32", "description":"Size of the attachment in bytes.", "example":1024, "readOnly":true }, "url":{ "type":"string", "description":"URL of the attachment.", "example":"/email/1/templates/1000000000000000001/attachments/7BE07D39-C7DA-4ED4-9F45-33BDB8643AA1/download" } }, "required":[ "id" ], "title":"Attachment" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.AttachmentList":{ "type":"array", "items":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Attachment" }, "properties":{ "size":{ "type":"integer", "format":"int32" }, "empty":{ "type":"boolean" }, "first":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Attachment" }, "last":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Attachment" } }, "title":"AttachmentList" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Base64EncodedFile":{ "type":"object", "properties":{ "contentType":{ "type":"string", "description":"Content type of the file.", "example":"application/pdf" }, "fileName":{ "type":"string", "description":"Name of the file.", "example":"attachment.pdf" }, "data":{ "type":"string", "description":"Base64 encoded file data.", "example":"base64encodeddata" } }, "required":[ "contentType", "data", "fileName" ], "title":"Base64EncodedFile" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.CreateEmailTemplateRequest":{ "type":"object", "properties":{ "name":{ "type":"string", "description":"Name of the email template.", "example":"Welcome email" }, "from":{ "type":"string", "description":"Email address with optional sender name.", "example":"Infobip " }, "replyTo":{ "type":"string", "description":"Email address to which recipients of the email can reply.", "example":"support@example.com" }, "subject":{ "type":"string", "description":"Subject of the email template.", "example":"Welcome to Infobip", "maxLength":200, "minLength":0 }, "preheader":{ "type":"string", "description":"Preheader of the email template.", "example":"Welcome to Infobip", "maxLength":75, "minLength":0 }, "html":{ "type":"string", "description":"HTML content of the email template.", "example":"

Welcome to Infobip

" }, "attachments":{ "type":"string", "description":"JSON string of attachments to be sent with the email template.", "example":"[{\"contentType\":\"application/pdf\",\"fileName\":\"attachment.pdf\",\"data\":\"base64encodeddata\"}]" }, "landingPage":{ "type":"string", "description":"The identifier of an opt out landing late to be used and displayed when an end user clicks the unsubscribe link. Create a landing page in your Infobip account and use the ID number. For example, 1_23456. If not present, the default opt out landing page is used.", "example":"1_2345" } }, "required":[ "html" ], "title":"CreateEmailTemplateRequest" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplate":{ "type":"object", "properties":{ "id":{ "type":"integer", "format":"int64", "description":"Unique identifier of the email template.", "example":1000000000000000001 }, "name":{ "type":"string", "description":"Name of the email template.", "example":"Welcome email" }, "from":{ "type":"string", "description":"Email address with optional sender name.", "example":"John Doe

Welcome to Infobip

" }, "isHtmlEditable":{ "type":"boolean", "description":"Flag indicating if the HTML content is editable.", "example":true }, "attachments":{ "type":"array", "description":"List of attachments.", "example":[ { "id":"7BE07D39-C7DA-4ED4-9F45-33BDB8643AA1", "contentType":"application/pdf", "filename":"attachment.pdf", "size":1024, "url":"/email/1/templates/1000000000000000001/attachments/7BE07D39-C7DA-4ED4-9F45-33BDB8643AA1/download" } ], "items":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.Attachment" } }, "landingPageId":{ "type":"string", "description":"Unique identifier of the landing page.", "example":"1_2345" }, "imagePreviewUrl":{ "type":"string", "description":"URL of the image preview.", "example":"/email/1/templates/1000000000000000001/preview.png" }, "createdAt":{ "type":"string", "format":"date-time", "description":"Date and time when the email template was created. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`." }, "updatedAt":{ "type":"string", "format":"date-time", "description":"Date and time when the email template was last updated. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`." } }, "required":[ "html", "id", "isHtmlEditable" ], "title":"EmailTemplate" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplateListItem":{ "type":"object", "properties":{ "id":{ "type":"integer", "format":"int64", "description":"Unique identifier of the email template.", "example":1000000000000000001 }, "name":{ "type":"string", "description":"Name of the email template.", "example":"Welcome email" }, "imagePreviewUrl":{ "type":"string", "description":"Image preview URL", "example":"/email/1/templates/1000000000000000001/preview.png" }, "createdAt":{ "type":"string", "format":"date-time", "description":"Date and time when the email template was created. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`." }, "updatedAt":{ "type":"string", "format":"date-time", "description":"Date and time when the email template was last updated. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`." } }, "required":[ "id" ], "title":"EmailTemplateListItem" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplateListPage":{ "type":"object", "properties":{ "results":{ "type":"array", "items":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplateListItem" } }, "paging":{ "$ref":"#/components/schemas/39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.PageInfo" } }, "required":[ "paging", "results" ], "title":"EmailTemplateListPage" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.EmailTemplatePreviewRequest":{ "type":"object", "properties":{ "placeholders":{ "type":"object", "additionalProperties":{ "type":"object", "description":"A map of placeholder names and their replacement values.", "example":{ "firstName":"Joe" } }, "description":"A map of placeholder names and their replacement values.", "example":{ "firstName":"Joe" } } }, "title":"EmailTemplatePreviewRequest" }, "39bb6975d36d214ea076d974c69ec0b82edda805f4c6bf36a3f6f7d154c98fa0.PageInfo":{ "type":"object", "properties":{ "page":{ "type":"integer", "format":"int32", "description":"Requested page number.", "minimum":0 }, "size":{ "type":"integer", "format":"int32", "description":"Requested page size.", "minimum":1 }, "totalPages":{ "type":"integer", "format":"int32", "description":"The total number of pages of the results matching the requested parameters.", "minimum":0 }, "totalResults":{ "type":"integer", "format":"int64", "description":"The total number of the results matching the requested parameters.", "minimum":0 } }, "required":[ "page", "size", "totalPages", "totalResults" ], "title":"PageInfo" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ApiBulkRequest":{ "type":"object", "description":"Validations request", "properties":{ "validationRequestId":{ "type":"string", "description":"Unique identifier for the bulk email validation request. Provide your own or leave it blank to have one generated automatically.\n", "maxLength":200, "minLength":0 }, "destinations":{ "type":"array", "description":"Array of email addresses to be validated.", "items":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationDestination" }, "maxItems":100000, "minItems":1 } }, "required":[ "destinations" ], "title":"ApiBulkRequest" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ApiRisk":{ "type":"string", "description":"Indicates the risk status of email addresses.\nHigh-risk addresses have a very high chance of bouncing and potentially damaging the sender's reputation.\nLow-risk addresses have a very low chance of bouncing and are less likely to damage the sender's reputation.\n", "enum":[ "LOW", "MEDIUM", "HIGH", "UNKNOWN" ], "title":"ApiRisk" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.BulkResponse":{ "type":"object", "description":"Validations response", "properties":{ "validationRequestId":{ "type":"string", "description":"Unique identifier for the bulk email validation request. Provide your own or leave it blank to have one generated automatically.\n" } }, "required":[ "validationRequestId" ], "title":"BulkResponse" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.CursorPageInfo":{ "type":"object", "description":"Paging response.", "properties":{ "size":{ "type":"integer", "format":"int32", "description":"Requested page size.", "minimum":1 }, "previousCursor":{ "type":"string", "description":"The previous cursor, empty if there are no previous results." }, "nextCursor":{ "type":"string", "description":"The next cursor, empty if there are no subsequent results." } }, "required":[ "nextCursor", "previousCursor", "size" ], "title":"CursorPageInfo" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.GetValidation":{ "type":"object", "description":"Validation get response.", "properties":{ "destination":{ "type":"string", "description":"The validated email address." }, "validMailbox":{ "type":"string", "description":"Indicates whether email address is valid.", "example":"true|false|unknown", "pattern":"^(true|false|unknown)$" }, "validSyntax":{ "type":"boolean", "description":"Indicates whether email address syntax is valid." }, "catchAll":{ "type":"boolean", "description":"Indicates catch all status of email address." }, "didYouMean":{ "type":"string", "description":"Suggests similar alternate address that may be valid." }, "disposable":{ "type":"boolean", "description":"Indicates whether email address is disposable.\nA disposable email address is a temporary address that is often used for short-term purposes and can be discarded after use.\n" }, "roleBased":{ "type":"boolean", "description":"Indicates whether email address is role-based.\nA role-based email address is one that is associated with a specific function or group within an organization,\nsuch as marketing@example.org, rather than an individual person.\n" }, "risk":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ApiRisk" }, "reason":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationReason" }, "detailedReasons":{ "type":"string", "description":"This field is provided when the validMailbox status is 'unknown' or 'false',\noffering specific explanations for why the email address has been assigned that status.\n" }, "bulkValidationDate":{ "type":"string", "format":"date-time", "description":"Date and time when email address was validated." }, "validationRequestId":{ "type":"string", "description":"Unique identifier for the bulk email validation request. Provide your own or leave it blank to have one generated automatically.\n" } }, "required":[ "bulkValidationDate", "catchAll", "destination", "disposable", "risk", "roleBased", "validMailbox", "validSyntax" ], "title":"GetValidation" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.GetValidationPageResponse":{ "type":"object", "description":"Validation get page response.", "properties":{ "results":{ "type":"array", "description":"Validated addresses for requested paging information.", "items":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.GetValidation" } }, "paging":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.CursorPageInfo" } }, "required":[ "paging", "results" ], "title":"GetValidationPageResponse" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationDestination":{ "type":"object", "description":"Array of email addresses to be validated.", "properties":{ "destination":{ "type":"string", "description":"The email address to be validated.", "maxLength":320, "minLength":1 } }, "required":[ "destination" ], "title":"ValidationDestination" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationReason":{ "type":"string", "description":"Reason is provided when validMailbox status is unknown.\n1. INBOX_FULL - The user quota exceeded / The user inbox is full / The user doesn't accept any more requests.\n2. UNEXPECTED_FAILURE - The mail Server returned a temporary error.\n3. THROTTLED - The mail server is not allowing us momentarily because of too many requests.\n4. TIMED_OUT - The mail Server took a longer time to respond / there was a delay in the network.\n5. TEMP_REJECTION - Mail server temporarily rejected.\n6. UNABLE_TO_CONNECT - Unable to connect to the Mail Server.\n", "enum":[ "TIMED_OUT", "TEMP_REJECTION", "THROTTLED", "INBOX_FULL", "UNABLE_TO_CONNECT", "UNEXPECTED_FAILURE" ], "title":"ValidationReason" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationRequest":{ "type":"object", "description":"Validation request", "properties":{ "to":{ "type":"string", "description":"The email address to be validated." } }, "required":[ "to" ], "title":"ValidationRequest" }, "45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationResponse":{ "type":"object", "description":"Validation response", "properties":{ "to":{ "type":"string", "description":"The validated email address." }, "validMailbox":{ "type":"string", "description":"Indicates whether email address is valid." }, "validSyntax":{ "type":"boolean", "description":"Indicates whether email address syntax is valid." }, "catchAll":{ "type":"boolean", "description":"Indicates catch all status of email address." }, "didYouMean":{ "type":"string", "description":"Suggests similar alternate address that may be valid." }, "disposable":{ "type":"boolean", "description":"Indicates whether email address is disposable.\nA disposable email address is a temporary address that is often used for short-term purposes and can be discarded after use.\n" }, "roleBased":{ "type":"boolean", "description":"Indicates whether email address is role-based.\nA role-based email address is one that is associated with a specific function or group within an organization,\nsuch as marketing@example.org, rather than an individual person.\n" }, "reason":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ValidationReason" }, "risk":{ "$ref":"#/components/schemas/45c843446703ba5f4438a6f721c629420452796de20bd3dd9adfccde3ed2ffff.ApiRisk" }, "detailedReasons":{ "type":"string", "description":"This field is provided when the validMailbox status is 'unknown' or 'false',\noffering specific explanations for why the email address has been assigned that status.\n" } }, "required":[ "catchAll", "disposable", "risk", "roleBased", "to", "validMailbox", "validSyntax" ], "title":"ValidationResponse" }, "49bee00604d221bf98890cc8ca36403a588d28255383650998e0c4df2f9a5b4f.GeoLocation":{ "type":"object", "description":"Geolocation data such as Country and City. This data will be available only for opens, clicks and unsubscribes.", "properties":{ "countryName":{ "type":"string", "description":"Country where the user action is recorded." }, "city":{ "type":"string", "description":"City where the user action is recorded." } }, "title":"GeoLocation" }, "49bee00604d221bf98890cc8ca36403a588d28255383650998e0c4df2f9a5b4f.RecipientInfo":{ "type":"object", "description":"Recipient information such as device type, OS, device name.", "properties":{ "deviceType":{ "type":"string", "description":"The type of device used by the recipient to do the user action." }, "os":{ "type":"string", "description":"The type OS present in the device used by the recipient." }, "deviceName":{ "type":"string", "description":"Device name of the action originating device." } }, "title":"RecipientInfo" }, "49bee00604d221bf98890cc8ca36403a588d28255383650998e0c4df2f9a5b4f.WebhookTrackingPayload":{ "type":"object", "properties":{ "notificationType":{ "type":"string", "description":"Tells the type of user event that took place. Possible events: `OPENED`, `CLICKED`, `COMPLAINED`, `LATE_BOUNCE`, `UNSUBSCRIBED`." }, "eventId":{ "type":"string", "description":"Unique ID of the event. This ID can be used for deduplication purposes." }, "domain":{ "type":"string", "description":"The sending domain used to send the email to the recipient." }, "recipient":{ "type":"string", "description":"Recipient of the email." }, "sender":{ "type":"string", "description":"Sender of the email. This attribute will only be present if the event is of the type `COMPLAINED` or `LATE_BOUNCE`." }, "url":{ "type":"string", "description":"The link the recipient has clicked. This attribute will only be present if the event is of the type `CLICKED`." }, "sendDateTime":{ "type":"number", "description":"The time at which the email was sent. Time is in milliseconds." }, "messageId":{ "type":"number", "description":"The ID that uniquely identifies the message sent to the recipient." }, "bulkId":{ "type":"string", "description":"The ID that uniquely identifies a list of email messages. This is either defined by user in the request or auto generated." }, "callbackData":{ "type":"string", "description":"The callback data sent through the callbackData field in your fully featured Email message." }, "recipientInfo":{ "$ref":"#/components/schemas/49bee00604d221bf98890cc8ca36403a588d28255383650998e0c4df2f9a5b4f.RecipientInfo" }, "geoLocation":{ "$ref":"#/components/schemas/49bee00604d221bf98890cc8ca36403a588d28255383650998e0c4df2f9a5b4f.GeoLocation" }, "campaignReferenceId":{ "type":"string", "description":"ID of a campaign that was sent in the message." }, "entityId":{ "type":"string", "description":"Used when specifying an entity in outbound send requests. It is also returned in notification events. For detailed usage, refer to the [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management)." }, "applicationId":{ "type":"string", "description":"Used when specifying an application in outbound send requests. It is also returned in notification events. For detailed usage, refer to the [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management)." } }, "title":"WebhookTrackingPayload" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.AddSuppression":{ "type":"object", "description":"Suppression.", "properties":{ "domainName":{ "type":"string", "description":"Domain name from which suppressions will be added." }, "emailAddress":{ "type":"array", "description":"Email addresses to add to suppression list.", "items":{ "type":"string", "description":"Email addresses to add to suppression list." }, "maxItems":1000, "minItems":1 }, "type":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiAddSuppressionType" } }, "required":[ "domainName", "emailAddress", "type" ], "title":"AddSuppression" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.AddSuppressionRequest":{ "type":"object", "description":"Suppressions request.", "properties":{ "suppressions":{ "type":"array", "description":"Email addresses to add to the suppression list. Number of destinations cannot exceed 10,000.", "items":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.AddSuppression" }, "maxItems":10, "minItems":1 } }, "required":[ "suppressions" ], "title":"AddSuppressionRequest" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiAddSuppressionType":{ "type":"string", "description":"Type of suppression.", "enum":[ "BOUNCE", "COMPLAINT" ], "title":"ApiAddSuppressionType" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiDomainAccess":{ "type":"string", "description":"Represents the access level for the domain. Domain can be either owned or have granted permissions.", "enum":[ "OWNER", "GRANTED" ], "title":"ApiDomainAccess" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiPageDetails":{ "type":"object", "description":"Paging response.", "properties":{ "page":{ "type":"integer", "format":"int32", "description":"Requested page number." }, "size":{ "type":"integer", "format":"int32", "description":"Requested page size." } }, "required":[ "page", "size" ], "title":"ApiPageDetails" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiSuppressionType":{ "type":"string", "description":"Type of suppression.", "enum":[ "BOUNCE", "COMPLAINT", "OVER_QUOTA" ], "title":"ApiSuppressionType" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DeleteSuppression":{ "type":"object", "description":"Suppression.", "properties":{ "domainName":{ "type":"string", "description":"Domain name from which suppressions will be deleted." }, "emailAddress":{ "type":"array", "description":"Email addresses that need to be deleted.", "items":{ "type":"string", "description":"Email addresses that need to be deleted." }, "maxItems":1000, "minItems":1 }, "type":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiSuppressionType" } }, "required":[ "domainName", "emailAddress", "type" ], "title":"DeleteSuppression" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DeleteSuppressionRequest":{ "type":"object", "description":"Suppressions request.", "properties":{ "suppressions":{ "type":"array", "description":"Email addresses to delete from the suppression list. Number of destinations cannot exceed 10,000.", "items":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DeleteSuppression" }, "maxItems":10, "minItems":1 } }, "required":[ "suppressions" ], "title":"DeleteSuppressionRequest" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DomainInfo":{ "type":"object", "description":"Domain get response.", "properties":{ "domainName":{ "type":"string", "description":"Name of the requested domain." }, "dataAccess":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiDomainAccess" }, "readBounces":{ "type":"boolean", "description":"Read bounces permission." }, "createBounces":{ "type":"boolean", "description":"Create bounces permission." }, "deleteBounces":{ "type":"boolean", "description":"Delete bounces permission." }, "readComplaints":{ "type":"boolean", "description":"Read complaints permission." }, "createComplaints":{ "type":"boolean", "description":"Create complaints permission." }, "deleteComplaints":{ "type":"boolean", "description":"Delete complaints permission." }, "readOverquotas":{ "type":"boolean", "description":"Read overquotas permission." }, "deleteOverquotas":{ "type":"boolean", "description":"Delete overquotas permission." } }, "required":[ "createBounces", "createComplaints", "dataAccess", "deleteBounces", "deleteComplaints", "deleteOverquotas", "domainName", "readBounces", "readComplaints", "readOverquotas" ], "title":"DomainInfo" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DomainInfoPageResponse":{ "type":"object", "description":"Domain get response.", "properties":{ "results":{ "type":"array", "description":"Domains for requested paging information.", "items":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.DomainInfo" } }, "paging":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiPageDetails" } }, "required":[ "paging", "results" ], "title":"DomainInfoPageResponse" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.SuppressionInfo":{ "type":"object", "description":"Suppression get response.", "properties":{ "domainName":{ "type":"string", "description":"Name of the requested domain." }, "emailAddress":{ "type":"string", "description":"Email address that is suppressed." }, "type":{ "type":"string", "description":"Type of suppression." }, "createdDate":{ "type":"string", "format":"date-time", "description":"Date and time when email address was suppressed." }, "reason":{ "type":"string", "description":"Reason for suppression." } }, "required":[ "createdDate", "domainName", "emailAddress", "reason", "type" ], "title":"SuppressionInfo" }, "53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.SuppressionInfoPageResponse":{ "type":"object", "description":"Suppression get response.", "properties":{ "results":{ "type":"array", "description":"Suppressed addresses for requested paging information.", "items":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.SuppressionInfo" } }, "paging":{ "$ref":"#/components/schemas/53ea038e2044401649ce25e79296cd97fe7d6f7f97d15a035e41419183f810a1.ApiPageDetails" } }, "required":[ "paging", "results" ], "title":"SuppressionInfoPageResponse" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DKIMCheck":{ "type":"object", "description":"The result of a check of the DKIM authentication record of the inbound email.", "properties":{ "result":{ "type":"string", "description":"Indicates whether the DKIM validation was successful." }, "domains":{ "type":"array", "description":"List of domains which were used to validate DKIM.", "items":{ "type":"string", "description":"List of domains which were used to validate DKIM." } } }, "required":[ "domains", "result" ], "title":"DKIMCheck" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DomainIpApiPool":{ "type":"object", "description":"IP pools assigned to the domain. Assigned IP pools with the lowest priority value have the highest sending precedence.", "properties":{ "id":{ "type":"string", "description":"IP pool identifier." }, "name":{ "type":"string", "description":"IP pool name." }, "priority":{ "type":"integer", "format":"int32", "description":"IP pool sending priority. Higher value will result in a lower sending precedence for the specified IP pool.", "maximum":49, "minimum":0 }, "ips":{ "type":"array", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpResponse" }, "minItems":0, "uniqueItems":true } }, "required":[ "id", "ips", "name", "priority" ], "title":"DomainIpApiPool" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DomainIpPoolAssignApiRequest":{ "type":"object", "properties":{ "poolId":{ "type":"string", "description":"IP pool identifier." }, "priority":{ "type":"integer", "format":"int32", "description":"IP pool sending priority.", "maximum":49, "minimum":0 } }, "required":[ "poolId", "priority" ], "title":"DomainIpPoolAssignApiRequest" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DomainIpPoolUpdateApiRequest":{ "type":"object", "properties":{ "priority":{ "type":"integer", "format":"int32", "description":"IP pool sending priority.", "maximum":49, "minimum":0 } }, "required":[ "priority" ], "title":"DomainIpPoolUpdateApiRequest" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.Envelope":{ "type":"object", "description":"The values of the envelope-from and envelope-to headers of the inbound email.", "properties":{ "from":{ "type":"string", "description":"The sender name and sender address from which the inbound email was sent." }, "to":{ "type":"string", "description":"The reply-to address to which the inbound email was sent." } }, "required":[ "from", "to" ], "title":"Envelope" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpDetailResponse":{ "type":"object", "properties":{ "id":{ "type":"string", "description":"Dedicated IP identifier." }, "ip":{ "type":"string", "deprecated":true, "description":"Dedicated IP address." }, "ipAddresses":{ "type":"array", "description":"List of IP addresses that are paired together.", "items":{ "type":"string" }, "minItems":1, "uniqueItems":true }, "pools":{ "type":"array", "description":"IP pools which have assigned the provided dedicated IP.", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolResponse" }, "minItems":0, "uniqueItems":true } }, "required":[ "id", "ip", "ipAddresses", "pools" ], "title":"IpDetailResponse" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpDomainResponse":{ "type":"object", "properties":{ "id":{ "type":"integer", "format":"int64", "description":"Domain identifier.", "minimum":1 }, "name":{ "type":"string", "description":"Domain name." }, "pools":{ "type":"array", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DomainIpApiPool" }, "minItems":0, "uniqueItems":true } }, "required":[ "id", "name", "pools" ], "title":"IpDomainResponse" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolAssignIpApiRequest":{ "type":"object", "properties":{ "ipId":{ "type":"string", "description":"Dedicated IP identifier." } }, "required":[ "ipId" ], "title":"IpPoolAssignIpApiRequest" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolCreateApiRequest":{ "type":"object", "properties":{ "name":{ "type":"string", "description":"IP pool name.", "maxLength":100, "minLength":1 } }, "required":[ "name" ], "title":"IpPoolCreateApiRequest" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolDetailResponse":{ "type":"object", "properties":{ "id":{ "type":"string", "description":"IP pool identifier." }, "name":{ "type":"string", "description":"IP pool name." }, "ips":{ "type":"array", "description":"Dedicated IPs assigned to the provided IP pool.", "items":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpResponse" }, "minItems":0, "uniqueItems":true } }, "required":[ "id", "ips", "name" ], "title":"IpPoolDetailResponse" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpPoolResponse":{ "type":"object", "properties":{ "id":{ "type":"string", "description":"IP pool identifier." }, "name":{ "type":"string", "description":"IP pool name." } }, "required":[ "id", "name" ], "title":"IpPoolResponse" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.IpResponse":{ "type":"object", "description":"Dedicated IPs assigned to the IP pool.", "properties":{ "id":{ "type":"string", "description":"Dedicated IP identifier." }, "ip":{ "type":"string", "deprecated":true, "description":"Dedicated IP address." }, "ipAddresses":{ "type":"array", "description":"List of IP addresses that are paired together.", "items":{ "type":"string" }, "minItems":1, "uniqueItems":true } }, "required":[ "id", "ip", "ipAddresses" ], "title":"IpResponse" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.PageInfo":{ "type":"object", "properties":{ "page":{ "type":"integer", "format":"int32", "description":"Requested page number.", "minimum":0 }, "size":{ "type":"integer", "format":"int32", "description":"Requested page size.", "minimum":1 }, "totalPages":{ "type":"integer", "format":"int32", "description":"The total number of pages of the results matching the requested parameters.", "minimum":0 }, "totalResults":{ "type":"integer", "format":"int64", "description":"The total number of the results matching the requested parameters.", "minimum":0 } }, "required":[ "page", "size", "totalPages", "totalResults" ], "title":"PageInfo" }, "61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.WebhookPayload":{ "type":"object", "properties":{ "id":{ "type":"string", "description":"The ID that uniquely identifies the inbound email." }, "spfCheck":{ "type":"string", "description":"The result of a check of the SPF authentication record of the inbound email." }, "dkimCheck":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.DKIMCheck" }, "senderIp":{ "type":"string", "description":"The IP address from which the inbound email was sent." }, "from":{ "type":"string", "description":"The sender name and sender address from which the inbound email was sent." }, "to":{ "type":"string", "description":"The reply-to address to which the inbound email was sent." }, "subject":{ "type":"string", "description":"The subject of the inbound email." }, "html":{ "type":"string", "description":"The MIME html content of the inbound email." }, "text":{ "type":"string", "description":"The MIME text content of the inbound email." }, "attachment":{ "type":"array", "description":"Attachments are received as variables named attachment1, attachment2, attachment3, etc. Each variable contains one part of the attachment in a byte array. The variable names are based on the “attachmentInfo” part of the inbound email.", "items":{ "type":"array", "items":{ "type":"string", "format":"byte" } }, "maxItems":999, "minItems":0 }, "attachmentInfo":{ "type":"object", "description":"Information about any attachments of the inbound email.", "properties":{ "name":{ "type":"string", "description":"Name of the variable containing the byte array of the file in the request." }, "contentType":{ "type":"string", "description":"Type of the attached file." }, "filename":{ "type":"string", "description":"Name of the attached file." }, "contentId":{ "type":"string", "description":"Unique ID of the attached file." } }, "required":[ "contentId", "contentType", "filename", "name" ] }, "envelope":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.Envelope" } }, "required":[ "attachment", "attachmentInfo", "dkimCheck", "envelope", "from", "html", "id", "senderIp", "spfCheck", "subject", "text", "to" ], "title":"WebhookPayload" }, "73f6910bb0f0a3f1f6a9e6796ff94e4b37e388cd86d56d7e974197854e7020f7.ApiException":{ "type":"object", "properties":{ "requestError":{ "$ref":"#/components/schemas/ApiRequestError" } }, "title":"ApiException" }, "ApiError":{ "type":"object", "properties":{ "errorCode":{ "type":"string", "description":"An error code uniquely identifying the error case." }, "description":{ "type":"string", "description":"A detailed description of an error." }, "action":{ "type":"string", "description":"An action that should be taken to recover from the error." }, "violations":{ "type":"array", "description":"List of violations that caused the error.", "items":{ "$ref":"#/components/schemas/ApiErrorViolation" } }, "resources":{ "type":"array", "description":"List of available resources to recover from the error.", "items":{ "$ref":"#/components/schemas/ApiErrorResource" } } }, "required":[ "action", "description", "errorCode", "resources", "violations" ], "title":"ApiError" }, "ApiErrorResource":{ "type":"object", "description":"List of available resources to recover from the error.", "properties":{ "name":{ "type":"string", "description":"Resource name." }, "url":{ "type":"string", "description":"Resource URL." } }, "title":"ApiErrorResource" }, "ApiErrorViolation":{ "type":"object", "description":"List of violations that caused the error.", "properties":{ "property":{ "type":"string", "description":"Request property that caused the error." }, "violation":{ "type":"string", "description":"Detailed violation description." } }, "title":"ApiErrorViolation" }, "ApiException":{ "type":"object", "properties":{ "requestError":{ "$ref":"#/components/schemas/ApiRequestError" } }, "title":"ApiException" }, "ApiRequestError":{ "type":"object", "properties":{ "serviceException":{ "$ref":"#/components/schemas/ApiRequestErrorDetails" } }, "title":"ApiRequestError" }, "ApiRequestErrorDetails":{ "type":"object", "properties":{ "messageId":{ "type":"string", "description":"Identifier of the error." }, "text":{ "type":"string", "description":"Detailed error description." }, "validationErrors":{ "type":"object", "additionalProperties":{ "type":"array", "items":{ "type":"string", "description":"Validation errors." } }, "description":"Validation errors." } }, "title":"ApiRequestErrorDetails" }, "febb9d147c03fd2fbfd3c2210892c186364d60568040914121c07343344b284b.ApiException":{ "type":"object", "properties":{ "requestError":{ "$ref":"#/components/schemas/ApiRequestError" } }, "title":"ApiException" }, "ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.EventDetails":{ "type":"object", "description":"Email platform event data.", "discriminator":{ "propertyName":"type", "mapping":{ "HIGH_BOUNCE_RATE_WARNING":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.HighDomainBounceWarnEvent", "HIGH_BOUNCE_RATE_BLOCKED":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.HighDomainBounceBlockEvent" } }, "properties":{ "type":{ "$ref":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.WebhookNotificationType" } }, "required":[ "type" ], "title":"EventDetails" }, "ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.HighDomainBounceBlockEvent":{ "type":"object", "allOf":[ { "$ref":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.EventDetails" }, { "type":"object", "properties":{ "accountKey":{ "type":"string", "description":"Account that owns the affected domain.", "example":"8F0792F86035A9F4290821F1EE6BC06A" }, "domain":{ "type":"string", "description":"The sender domain whose bounce rate exceeded the configured threshold.", "example":"example.com" }, "blockThreshold":{ "type":"number", "format":"double", "description":"The configured bounce rate block threshold for the domain." }, "bounceRate":{ "type":"number", "format":"double", "description":"The actual bounce rate detected that exceeded the threshold." }, "scope":{ "$ref":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.WebhookScope" } } } ], "required":[ "accountKey", "blockThreshold", "bounceRate", "domain", "scope", "type" ], "title":"HighDomainBounceBlockEvent" }, "ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.HighDomainBounceWarnEvent":{ "type":"object", "allOf":[ { "$ref":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.EventDetails" }, { "type":"object", "properties":{ "accountKey":{ "type":"string", "description":"Account that owns the affected domain.", "example":"8F0792F86035A9F4290821F1EE6BC06A" }, "domain":{ "type":"string", "description":"The sender domain whose bounce rate exceeded the configured threshold.", "example":"example.com" }, "warnThreshold":{ "type":"number", "format":"double", "description":"The configured bounce rate warning threshold for the domain." }, "bounceRate":{ "type":"number", "format":"double", "description":"The actual bounce rate detected that exceeded the threshold." }, "scope":{ "$ref":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.WebhookScope" } } } ], "required":[ "accountKey", "bounceRate", "domain", "scope", "type", "warnThreshold" ], "title":"HighDomainBounceWarnEvent" }, "ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.Payload":{ "type":"object", "properties":{ "eventId":{ "type":"string", "format":"uuid", "description":"Unique ID of the event. This ID can be used for deduplication purposes." }, "createdAt":{ "type":"integer", "format":"int64", "description":"Epoch milliseconds when the event occurred." }, "eventDetails":{ "$ref":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.EventDetails" } }, "required":[ "createdAt", "eventDetails", "eventId" ], "title":"Payload" }, "ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.WebhookNotificationType":{ "type":"string", "description":"Type of the email platform event.", "enum":[ "HIGH_BOUNCE_RATE_WARNING", "HIGH_BOUNCE_RATE_BLOCKED" ], "title":"WebhookNotificationType" }, "ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.WebhookScope":{ "type":"string", "description":"Time window over which the bounce rate was calculated.", "enum":[ "HOURLY", "DAILY" ], "title":"WebhookScope" } }, "responses":{ "ApiError400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":{ "errorCode":"E400", "description":"Request cannot be processed.", "action":"Check the syntax, violations and adjust the request.", "violations":[], "resources":[] } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":"\n E400\n Request cannot be processed.\n Check the syntax, violations and adjust the request.\n \n \n\n" } } }, "ApiError401":{ "description":"Unauthorized", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":{ "errorCode":"E401", "description":"The request lacks valid authentication credentials for the requested resource.", "action":"Check the resources and adjust authentication credentials.", "violations":[], "resources":[ { "name":"API Authentication", "url":"https://www.infobip.com/docs/essentials/api-authentication" } ] } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":"\n E401\n The request lacks valid authentication credentials for the requested resource.\n Check the resources and adjust authentication credentials.\n \n \n \n API Authentication\n https://www.infobip.com/docs/essentials/api-authentication\n \n \n\n" } } }, "ApiError403":{ "description":"Forbidden", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":{ "errorCode":"E403", "description":"Insufficient permissions to access the requested resource.", "action":"Repeat the request with new or different credentials.", "violations":[], "resources":[ { "name":"API Scopes", "url":"https://www.infobip.com/docs/essentials/api-essentials/api-authorization#api-scopes" } ] } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":"\n E403\n Insufficient permissions to access the requested resource.\n Repeat the request with new or different credentials.\n \n \n \n API Scopes\n https://www.infobip.com/docs/essentials/api-essentials/api-authorization#api-scopes\n \n \n\n" } } }, "ApiError404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":{ "errorCode":"E404", "description":"Not found - request URL doesn't exist on the API server or resource is not found.", "action":"Check the resources and adjust your request.", "violations":[], "resources":[] } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":"\n E404\n Not found - request URL doesn't exist on the API server or resource is not found.\n Check the resources and adjust your request.\n \n \n\n" } } }, "ApiError429":{ "description":"Too Many Requests", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":{ "errorCode":"E429", "description":"Too many requests sent.", "action":"Check request rate limit specified in the API endpoint documentation resource.", "violations":[], "resources":[ { "name":"Throttling handling errors", "url":"https://www.infobip.com/docs/essentials/integration-best-practices#throttling-handling-errors" } ] } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":"\n E429\n Too many requests sent.\n Check request rate limit specified in the API endpoint documentation resource.\n \n \n \n Throttling handling errors\n https://www.infobip.com/docs/essentials/integration-best-practices#throttling-handling-errors\n \n \n\n" } } }, "ApiError500":{ "description":"Internal Server Error", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":{ "errorCode":"E500", "description":"Something went wrong.", "action":"Contact the support.", "violations":[], "resources":[] } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiError" }, "example":"\n E500\n Something went wrong.\n Contact the support.\n \n \n\n" } } }, "ApiException400":{ "description":"Bad Request", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":{ "requestError":{ "serviceException":{ "messageId":"BAD_REQUEST", "text":"Bad request" } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":"\n \n \n BAD_REQUEST\n Bad request\n \n \n\n" } } }, "ApiException401":{ "description":"Unauthorized", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":{ "requestError":{ "serviceException":{ "messageId":"UNAUTHORIZED", "text":"Unauthorized" } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":"\n \n \n UNAUTHORIZED\n Unauthorized\n \n \n\n" } } }, "ApiException403":{ "description":"Forbidden", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":{ "requestError":{ "serviceException":{ "messageId":"FORBIDDEN", "text":"Forbidden" } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":"\n \n \n FORBIDDEN\n Forbidden\n \n \n\n" } } }, "ApiException404":{ "description":"Not Found", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":{ "requestError":{ "serviceException":{ "messageId":"NOT_FOUND", "text":"Not found" } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":"\n \n \n NOT_FOUND\n Not found\n \n \n\n" } } }, "ApiException429":{ "description":"Too Many Requests", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":{ "requestError":{ "serviceException":{ "messageId":"TOO_MANY_REQUESTS", "text":"Too many requests" } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":"\n \n \n TOO_MANY_REQUESTS\n Too many requests\n \n \n\n" } } }, "ApiException500":{ "description":"Internal Server Error", "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":{ "requestError":{ "serviceException":{ "messageId":"GENERAL_ERROR", "text":"Something went wrong. Please contact support." } } } }, "application/xml":{ "schema":{ "$ref":"#/components/schemas/ApiException" }, "example":"\n \n \n GENERAL_ERROR\n Something went wrong. Please contact support.\n \n \n\n" } } } }, "parameters":{}, "examples":{}, "requestBodies":{}, "headers":{}, "securitySchemes":{ "APIKeyHeader":{ "type":"apiKey", "description":"This is the most secure authorization type and the one with the most flexibility.\n\nAPI keys can be generated by calling the dedicated API method. Furthermore, API keys can have a limited scope and cover only some API methods. Lastly, they can\nbe revoked at any time. This range of possibilities makes API keys well suited for separating the API access rights across multiple applications or use cases.\nFinally, the loss of an API key is easily manageable.\n\nYou can manage your API keys from [GUI](https://portal.infobip.com/settings/accounts/api-keys), or programmatically\nwith [dedicated API](#platform-&-connectivity/settings).\n\nAPI key Authorization header example:\n\n```shell\nAuthorization: App 003026bbc133714df1834b8638bb496e-8f4b3d9a-e931-478d-a994-28a725159ab9\n```\n", "name":"Authorization", "in":"header" }, "Basic":{ "type":"http", "description":"Basic authorization type can be used in situations when the API key is not available. For example, API methods for generating API keys should be authenticated\nwith the Basic type.\n\nIn this case, the credentials included in the Authorization header should be a Base64 encoded username and password combination. More formally, basic\nauthentication header can be constructed in three steps:\n\n* Username and password are concatenated using the colon `(:)` as a separator `username:password`.\n* The resulting string is encoded using the [RFC2045-MIME](https://www.ietf.org/rfc/rfc2045.txt) variant of Base64.\n* Encoded string is added as credentials after the `\"Basic \"` type.\n\nExample:\n\n```shell\nUsername: \"Aladdin\"\nPassword: \"openSesame\"\n\nConcatenated string: \"Aladdin:openSesame\"\n\nBase64 encoded string: \"QWxhZGRpbjpvcGVuU2VzYW1l\"\n\nAuthorization header: \"Basic QWxhZGRpbjpvcGVuU2VzYW1l\"\n```\n\n> **Implementation detail**: Base64 encoding is a standard and many available programming languages and frameworks provide convenient methods for encoding\n> strings.\n", "scheme":"basic" }, "IBSSOTokenHeader":{ "type":"apiKey", "description":"This authorization type is suited for situations when you do not want to store Infobip credentials in your own app. Instead, your users will input their Infobip\ncredentials every time they access your application and the application will use those credentials to create a session. From then on, the session token can be\nused to authenticate subsequent API requests. Note that the session will expire automatically after a predefined period of inactivity, and can also be manually\nterminated by making an appropriate API call.\n\nYou can find more details on the creation and behavior of the session at\nthe [dedicated documentation page](#platform-connectivity/account-management/create-session).\n\nAfter obtaining the session token by calling the above-referenced API method you can include it in the Authorization header like this:\n\n```shell\nAuthorization: IBSSO 2f9b4d31-2d0d-49a8-85f0-9b862bdca394\n```\n", "name":"Authorization", "in":"header" }, "OAuth2":{ "type":"oauth2", "description":"Similarly to the IBSSO Token authentication you can use OAuth 2.0 bearer token with Infobip serving both as resource and authorization server. You can obtain\nthe access token using the client credentials grant from `auth/1/oauth2/token` endpoint. It will provide you with your access token, and its expiration period.\nYou can use the token to authorize your API calls until it expires. You can find out more about the process in\nthe [official specification](https://tools.ietf.org/html/rfc6749#section-4.4).\n\nYou can include your access token in the Authorization HTTP request header like this:\n\n```http\nAuthorization: Bearer \n```", "flows":{ "clientCredentials":{ "tokenUrl":"https://api.infobip.com/auth/1/oauth2/token", "scopes":{} } } } }, "links":{}, "callbacks":{} }, "webhooks":{ "receive-inbound-email":{ "post":{ "tags":[ "channels", "email", "inbound-email" ], "summary":"Receive parsed emails", "description":"To enable the receipt of incoming emails using Infobip, please contact your Account Manager for detailed instructions on activating this feature. Once enabled, follow the steps outlined in our [Get Started guide](https://www.infobip.com/docs/email/get-started#inbound-parsing) to configure Inbound Parsing for your sender domain(s).", "externalDocs":{ "description":"Learn more", "url":"https://www.infobip.com/docs/email/get-started#inbound-parsing" }, "operationId":"receive-inbound-email", "requestBody":{ "content":{ "multipart/form-data":{ "schema":{ "$ref":"#/components/schemas/61cea6785aa06882a92b0d6cc8c922ce1d44b92bfbdfd6cde0df0f73fb2499d6.WebhookPayload" }, "examples":{ "WebhookExample":{ "summary":"WebhookExample", "value":{ "id":"6tood98mthy5cqdf5ixx", "spfCheck":"pass", "dkimCheck":{ "result":"pass", "domains":[ "test.com" ] }, "senderIp":"192.0.2.54", "from":"John Doe ", "to":"[recipient@example.com]", "subject":"Subject of the email", "html":"

Hello world!

", "text":"Hello world!", "attachment1":[ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 ], "attachment2":[ 80, 68, 70, 32, 45, 32, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 ], "attachmentInfo":[ { "name":"attachment1", "contentType":"text/plain", "filename":"helloworld.txt", "contentId":"f_m488049z2" }, { "name":"attachment2", "contentType":"application/pdf", "filename":"helloworld.pdf", "contentId":"f_m488049z3" } ], "envelope":{ "from":"johndoe@test.com", "to":"recipient@example.com" }, "headers":{ "DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed...", "From":"John Doe ", "To":"recipient@example.com", "MIME-Version":"1.0", "Received":"by smtp.test.com for ..." } } } } } } }, "responses":{ "200":{ "description":"Your server returns this code if it accepts the callback." } } } }, "receive-email-delivery-reports":{ "post":{ "tags":[ "channels", "email", "email-webhooks" ], "summary":"Receive email delivery reports", "description":"Here you can configure an endpoint via the `notifyUrl` parameter that will receive a delivery report each time an email is sent out. Alternatively, you can also provide the endpoint’s URL to Customer support and they will set it up for you.", "externalDocs":{ "description":"Learn more about the Email channel and its use cases", "url":"https://www.infobip.com/docs/email" }, "operationId":"receive-email-delivery-reports", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/34438aa163eb13a2a06ad96ae98170e41cc2ee8902e8b7655aba73ceb0bb23f1.WebhookDLRPayload" }, "examples":{ "Example":{ "summary":"Example", "value":{ "results":[ { "entityId":"promotional-traffic-entity", "applicationId":"marketing-automation-application", "campaignReferenceId":"campaign-reference-123", "bulkId":"aszzmbhu62l7bxkhmyrj", "price":{ "pricePerMessage":0, "currency":"UNKNOWN" }, "status":{ "id":5, "groupId":3, "groupName":"DELIVERED", "name":"DELIVERED_TO_HANDSET", "description":"Message delivered to handset" }, "error":{ "id":0, "name":"NO_ERROR", "description":"No Error", "groupId":0, "groupName":"OK", "permanent":false }, "messageId":"hgtesn8bcmc71pujp92d", "doneAt":"2020-09-08T05:27:59.256+0000", "smsCount":1, "sentAt":"2020-09-08T05:27:57.628+0000", "attemptCount":1, "timeToFirstAttempt":123, "browserLink":"https://tracking.domain.com/render/content?id=9A31C6F61DBAE9664D74C7A5A5A01F92283F581D11EA80A28C12E83BC83D449BC4A9F32F1AE3C3E", "sendingIp":"192.0.2.0", "smtp":{ "response":"250 2.0.0 OK" }, "callbackData":"something you want back", "to":"john.doe@gmail.com" } ] } } } } } }, "responses":{ "200":{ "description":"Your server returns this code if it accepts the callback." } } } }, "receive-email-tracking-reports":{ "post":{ "tags":[ "channels", "email", "email-webhooks" ], "summary":"Receive user events", "description":"For each email that you send out, we can send you a tracking report for opened, clicked, complained, late bounce and unsubscribed. All you need to do is specify your endpoint [when sending email](https://www.infobip.com/docs/api/channels/email/send-fully-featured-email) and we will deliver a report to you in real time.", "externalDocs":{ "description":"Learn more about the Email channel and its use cases", "url":"https://www.infobip.com/docs/email" }, "operationId":"receive-email-tracking-reports", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/49bee00604d221bf98890cc8ca36403a588d28255383650998e0c4df2f9a5b4f.WebhookTrackingPayload" }, "examples":{ "Open reports":{ "summary":"Open reports", "value":{ "notificationType":"OPENED", "eventId":"8d2f8781-91fc-4473-9b0a-b12b51fafbe6", "domain":"some-domain.com", "recipient":"john.doe@some-domain.com", "sendDateTime":1704106800000, "messageId":"14b734recsf69n8zkao5", "bulkId":"ikzzmbhu6223bxkhmyrj", "callbackData":"Callback data", "recipientInfo":{ "deviceType":"Phone", "os":"iOS 12", "deviceName":"Apple" }, "geoLocation":{ "countryName":"Los Angeles", "city":"United States" }, "entityId":"promotional-traffic-entity", "applicationId":"marketing-automation-application", "campaignReferenceId":"campaign-reference-123" } }, "Click reports":{ "summary":"Click reports", "value":{ "notificationType":"CLICKED", "eventId":"8d2f8781-91fc-4473-9b0a-b12b51fafbe6", "domain":"some-domain.com", "recipient":"john.doe@some-domain.com", "url":"https://www.somelink.com", "sendDateTime":1704106800000, "messageId":"14b734recsf69n8zkao5", "bulkId":"ikzzmbhu6223bxkhmyrj", "callbackData":"Callback data", "recipientInfo":{ "deviceType":"Phone", "os":"iOS 12", "deviceName":"Apple" }, "geoLocation":{ "countryName":"Los Angeles", "city":"United States" }, "entityId":"promotional-traffic-entity", "applicationId":"marketing-automation-application", "campaignReferenceId":"campaign-reference-123" } }, "Unsubscribe reports":{ "summary":"Unsubscribe reports", "value":{ "notificationType":"UNSUBSCRIBED", "eventId":"8d2f8781-91fc-4473-9b0a-b12b51fafbe6", "domain":"some-domain.com", "recipient":"john.doe@some-domain.com", "sendDateTime":1704106800000, "messageId":"14b734recsf69n8zkao5", "bulkId":"ikzzmbhu6223bxkhmyrj", "callbackData":"Callback data", "recipientInfo":{ "deviceType":"Phone", "os":"iOS 12", "deviceName":"Apple" }, "geoLocation":{ "countryName":"Los Angeles", "city":"United States" }, "entityId":"promotional-traffic-entity", "applicationId":"marketing-automation-application", "campaignReferenceId":"campaign-reference-123" } }, "Complained reports":{ "summary":"Complained reports", "value":{ "notificationType":"COMPLAINED", "eventId":"8d2f8781-91fc-4473-9b0a-b12b51fafbe6", "domain":"some-domain.com", "recipient":"john.doe@some-domain.com", "sender":"noreply@some-domain.com", "sendDateTime":1704106800000, "messageId":"14b734recsf69n8zkao5", "bulkId":"ikzzmbhu6223bxkhmyrj", "callbackData":"Callback data", "entityId":"promotional-traffic-entity", "applicationId":"marketing-automation-application", "campaignReferenceId":"campaign-reference-123" } }, "Late bounce reports":{ "summary":"Late bounce reports", "value":{ "notificationType":"LATE_BOUNCE", "eventId":"8d2f8781-91fc-4473-9b0a-b12b51fafbe6", "domain":"some-domain.com", "recipient":"john.doe@some-domain.com", "sender":"noreply@some-domain.com", "sendDateTime":1704106800000, "messageId":"14b734recsf69n8zkao5", "bulkId":"ikzzmbhu6223bxkhmyrj", "callbackData":"Callback data", "entityId":"promotional-traffic-entity", "applicationId":"marketing-automation-application", "campaignReferenceId":"campaign-reference-123" } } } } } }, "responses":{ "200":{ "description":"Your server returns this code if it accepts the callback." } } } }, "receive-email-platform-events":{ "post":{ "tags":[ "channels", "email", "email-webhooks" ], "summary":"Receive email platform events", "description":"Receive platform-level events related to your email sending configuration. Events are delivered as they occur, with the `type` field inside `eventDetails` indicating the specific event. Learn more about [bounce rates](https://www.infobip.com/docs/email/email-deliverability#bounce-rates).", "externalDocs":{ "description":"Set up event subscriptions", "url":"https://www.infobip.com/docs/cpaas-x/subscriptions-management/event-subscriptions" }, "operationId":"receive-email-platform-events", "requestBody":{ "content":{ "application/json":{ "schema":{ "$ref":"#/components/schemas/ff7f7515e81995b140ab1c879b88d9d297a14922c035a187e237cd81e7c216a0.Payload" }, "examples":{ "High bounce rate warning":{ "summary":"High bounce rate warning", "description":"Sent when a domain's bounce rate exceeds the warning threshold. The domain remains active but action is recommended to avoid suspension.", "value":{ "eventId":"550e8400-e29b-41d4-a716-446655440000", "createdAt":1767308400000, "eventDetails":{ "type":"HIGH_BOUNCE_RATE_WARNING", "accountKey":"8F0792F86035A9F4290821F1EE6BC06A", "domain":"example.com", "warnThreshold":3.0, "bounceRate":4.6, "scope":"HOURLY" } } }, "High bounce rate block":{ "summary":"High bounce rate block", "description":"Sent when a domain's bounce rate exceeds the block threshold. The domain has been suspended and email sending is disabled for following 24 hours.", "value":{ "eventId":"dc592d92-54bb-4c97-b9fb-7aafb8f07bfd", "createdAt":1767308400000, "eventDetails":{ "type":"HIGH_BOUNCE_RATE_BLOCKED", "accountKey":"8F0792F86035A9F4290821F1EE6BC06A", "domain":"example.com", "blockThreshold":5.0, "bounceRate":6.6, "scope":"DAILY" } } } } } } }, "responses":{ "200":{ "description":"Your server returns this code if it accepts the callback." } } } } } }