diff --git a/.fern/metadata.json b/.fern/metadata.json
index 3a41769..a59a92d 100644
--- a/.fern/metadata.json
+++ b/.fern/metadata.json
@@ -1,7 +1,7 @@
{
- "cliVersion": "4.22.0",
+ "cliVersion": "3.91.2",
"generatorName": "fernapi/fern-python-sdk",
- "generatorVersion": "4.63.3",
+ "generatorVersion": "4.61.0",
"generatorConfig": {
"package_name": "brevo",
"client_class_name": "Brevo",
@@ -18,6 +18,5 @@
"skip_validation": true
}
},
- "originGitCommit": "306749c7d7549425dfc33ec33b6a91ea016d77c3",
- "sdkVersion": "4.0.7"
+ "sdkVersion": "4.0.6"
}
\ No newline at end of file
diff --git a/.fernignore b/.fernignore
index 5d74844..7fc1baf 100644
--- a/.fernignore
+++ b/.fernignore
@@ -2,8 +2,3 @@
banner.png
README.md
changelog.md
-
-# BatchDeleteObjectRecordsRequestIdentifiersIds.ids is a required field (per OpenAPI spec)
-# but the generated test instantiates the class with no arguments, causing a Pydantic
-# ValidationError. Fixed to pass ids=[1, 2, 3]. Protected until Fern fixes the generator.
-tests/wire/test_customObjects.py
diff --git a/poetry.lock b/poetry.lock
index 08382f8..4db468e 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -49,124 +49,124 @@ files = [
[[package]]
name = "charset-normalizer"
-version = "3.4.5"
+version = "3.4.4"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7"
files = [
- {file = "charset_normalizer-3.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4167a621a9a1a986c73777dbc15d4b5eac8ac5c10393374109a343d4013ec765"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3f64c6bf8f32f9133b668c7f7a7cbdbc453412bc95ecdbd157f3b1e377a92990"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:568e3c34b58422075a1b49575a6abc616d9751b4d61b23f712e12ebb78fe47b2"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:036c079aa08a6a592b82487f97c60b439428320ed1b2ea0b3912e99d30c77765"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:340810d34ef83af92148e96e3e44cb2d3f910d2bf95e5618a5c467d9f102231d"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:cd2d0f0ec9aa977a27731a3209ebbcacebebaf41f902bd453a928bfd281cf7f8"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0b362bcd27819f9c07cbf23db4e0e8cd4b44c5ecd900c2ff907b2b92274a7412"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:77be992288f720306ab4108fe5c74797de327f3248368dfc7e1a916d6ed9e5a2"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:8b78d8a609a4b82c273257ee9d631ded7fac0d875bdcdccc109f3ee8328cfcb1"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ba20bdf69bd127f66d0174d6f2a93e69045e0b4036dc1ca78e091bcc765830c4"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:76a9d0de4d0eab387822e7b35d8f89367dd237c72e82ab42b9f7bf5e15ada00f"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8fff79bf5978c693c9b1a4d71e4a94fddfb5fe744eb062a318e15f4a2f63a550"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c7e84e0c0005e3bdc1a9211cd4e62c78ba80bc37b2365ef4410cd2007a9047f2"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-win32.whl", hash = "sha256:58ad8270cfa5d4bef1bc85bd387217e14ff154d6630e976c6f56f9a040757475"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:02a9d1b01c1e12c27883b0c9349e0bcd9ae92e727ff1a277207e1a262b1cbf05"},
- {file = "charset_normalizer-3.4.5-cp310-cp310-win_arm64.whl", hash = "sha256:039215608ac7b358c4da0191d10fc76868567fbf276d54c14721bdedeb6de064"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:610f72c0ee565dfb8ae1241b666119582fdbfe7c0975c175be719f940e110694"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60d68e820af339df4ae8358c7a2e7596badeb61e544438e489035f9fbf3246a5"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:10b473fc8dca1c3ad8559985794815f06ca3fc71942c969129070f2c3cdf7281"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d4eb8ac7469b2a5d64b5b8c04f84d8bf3ad340f4514b98523805cbf46e3b3923"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bcb3227c3d9aaf73eaaab1db7ccd80a8995c509ee9941e2aae060ca6e4e5d81"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:75ee9c1cce2911581a70a3c0919d8bccf5b1cbc9b0e5171400ec736b4b569497"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d1401945cb77787dbd3af2446ff2d75912327c4c3a1526ab7955ecf8600687c"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a45e504f5e1be0bd385935a8e1507c442349ca36f511a47057a71c9d1d6ea9e"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e09f671a54ce70b79a1fc1dc6da3072b7ef7251fadb894ed92d9aa8218465a5f"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d01de5e768328646e6a3fa9e562706f8f6641708c115c62588aef2b941a4f88e"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:131716d6786ad5e3dc542f5cc6f397ba3339dc0fb87f87ac30e550e8987756af"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a374cc0b88aa710e8865dc1bd6edb3743c59f27830f0293ab101e4cf3ce9f85"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d31f0d1671e1534e395f9eb84a68e0fb670e1edb1fe819a9d7f564ae3bc4e53f"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-win32.whl", hash = "sha256:cace89841c0599d736d3d74a27bc5821288bb47c5441923277afc6059d7fbcb4"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:f8102ae93c0bc863b1d41ea0f4499c20a83229f52ed870850892df555187154a"},
- {file = "charset_normalizer-3.4.5-cp311-cp311-win_arm64.whl", hash = "sha256:ed98364e1c262cf5f9363c3eca8c2df37024f52a8fa1180a3610014f26eac51c"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed97c282ee4f994ef814042423a529df9497e3c666dca19be1d4cd1129dc7ade"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0294916d6ccf2d069727d65973c3a1ca477d68708db25fd758dd28b0827cff54"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dc57a0baa3eeedd99fafaef7511b5a6ef4581494e8168ee086031744e2679467"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ed1a9a204f317ef879b32f9af507d47e49cd5e7f8e8d5d96358c98373314fc60"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ad83b8f9379176c841f8865884f3514d905bcd2a9a3b210eaa446e7d2223e4d"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:a118e2e0b5ae6b0120d5efa5f866e58f2bb826067a646431da4d6a2bdae7950e"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:754f96058e61a5e22e91483f823e07df16416ce76afa4ebf306f8e1d1296d43f"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0c300cefd9b0970381a46394902cd18eaf2aa00163f999590ace991989dcd0fc"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c108f8619e504140569ee7de3f97d234f0fbae338a7f9f360455071ef9855a95"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d1028de43596a315e2720a9849ee79007ab742c06ad8b45a50db8cdb7ed4a82a"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:19092dde50335accf365cce21998a1c6dd8eafd42c7b226eb54b2747cdce2fac"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4354e401eb6dab9aed3c7b4030514328a6c748d05e1c3e19175008ca7de84fb1"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a68766a3c58fde7f9aaa22b3786276f62ab2f594efb02d0a1421b6282e852e98"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-win32.whl", hash = "sha256:1827734a5b308b65ac54e86a618de66f935a4f63a8a462ff1e19a6788d6c2262"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:728c6a963dfab66ef865f49286e45239384249672cd598576765acc2a640a636"},
- {file = "charset_normalizer-3.4.5-cp312-cp312-win_arm64.whl", hash = "sha256:75dfd1afe0b1647449e852f4fb428195a7ed0588947218f7ba929f6538487f02"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ac59c15e3f1465f722607800c68713f9fbc2f672b9eb649fe831da4019ae9b23"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:165c7b21d19365464e8f70e5ce5e12524c58b48c78c1f5a57524603c1ab003f8"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:28269983f25a4da0425743d0d257a2d6921ea7d9b83599d4039486ec5b9f911d"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d27ce22ec453564770d29d03a9506d449efbb9fa13c00842262b2f6801c48cce"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0625665e4ebdddb553ab185de5db7054393af8879fb0c87bd5690d14379d6819"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:c23eb3263356d94858655b3e63f85ac5d50970c6e8febcdde7830209139cc37d"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e6302ca4ae283deb0af68d2fbf467474b8b6aedcd3dab4db187e07f94c109763"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e51ae7d81c825761d941962450f50d041db028b7278e7b08930b4541b3e45cb9"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:597d10dec876923e5c59e48dbd366e852eacb2b806029491d307daea6b917d7c"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5cffde4032a197bd3b42fd0b9509ec60fb70918d6970e4cc773f20fc9180ca67"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2da4eedcb6338e2321e831a0165759c0c620e37f8cd044a263ff67493be8ffb3"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:65a126fb4b070d05340a84fc709dd9e7c75d9b063b610ece8a60197a291d0adf"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7a80a9242963416bd81f99349d5f3fce1843c303bd404f204918b6d75a75fd6"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-win32.whl", hash = "sha256:f1d725b754e967e648046f00c4facc42d414840f5ccc670c5670f59f83693e4f"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-win_amd64.whl", hash = "sha256:e37bd100d2c5d3ba35db9c7c5ba5a9228cbcffe5c4778dc824b164e5257813d7"},
- {file = "charset_normalizer-3.4.5-cp313-cp313-win_arm64.whl", hash = "sha256:93b3b2cc5cf1b8743660ce77a4f45f3f6d1172068207c1defc779a36eea6bb36"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8197abe5ca1ffb7d91e78360f915eef5addff270f8a71c1fc5be24a56f3e4873"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2aecdb364b8a1802afdc7f9327d55dad5366bc97d8502d0f5854e50712dbc5f"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a66aa5022bf81ab4b1bebfb009db4fd68e0c6d4307a1ce5ef6a26e5878dfc9e4"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d77f97e515688bd615c1d1f795d540f32542d514242067adcb8ef532504cb9ee"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01a1ed54b953303ca7e310fafe0fe347aab348bd81834a0bcd602eb538f89d66"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:b2d37d78297b39a9eb9eb92c0f6df98c706467282055419df141389b23f93362"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e71bbb595973622b817c042bd943c3f3667e9c9983ce3d205f973f486fec98a7"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4cd966c2559f501c6fd69294d082c2934c8dd4719deb32c22961a5ac6db0df1d"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d5e52d127045d6ae01a1e821acfad2f3a1866c54d0e837828538fabe8d9d1bd6"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:30a2b1a48478c3428d047ed9690d57c23038dac838a87ad624c85c0a78ebeb39"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d8ed79b8f6372ca4254955005830fd61c1ccdd8c0fac6603e2c145c61dd95db6"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:c5af897b45fa606b12464ccbe0014bbf8c09191e0a66aab6aa9d5cf6e77e0c94"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1088345bcc93c58d8d8f3d783eca4a6e7a7752bbff26c3eee7e73c597c191c2e"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-win32.whl", hash = "sha256:ee57b926940ba00bca7ba7041e665cc956e55ef482f851b9b65acb20d867e7a2"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-win_amd64.whl", hash = "sha256:4481e6da1830c8a1cc0b746b47f603b653dadb690bcd851d039ffaefe70533aa"},
- {file = "charset_normalizer-3.4.5-cp314-cp314-win_arm64.whl", hash = "sha256:97ab7787092eb9b50fb47fa04f24c75b768a606af1bcba1957f07f128a7219e4"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e22d1059b951e7ae7c20ef6b06afd10fb95e3c41bf3c4fbc874dba113321c193"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:afca7f78067dd27c2b848f1b234623d26b87529296c6c5652168cc1954f2f3b2"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ec56a2266f32bc06ed3c3e2a8f58417ce02f7e0356edc89786e52db13c593c98"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2b970382e4a36bed897c19f310f31d7d13489c11b4f468ddfba42d41cddfb918"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:573ef5814c4b7c0d59a7710aa920eaaaef383bd71626aa420fba27b5cab92e8d"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-manylinux_2_31_armv7l.whl", hash = "sha256:50bcbca6603c06a1dcc7b056ed45c37715fb5d2768feb3bcd37d2313c587a5b9"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1f2da5cbb9becfcd607757a169e38fb82aa5fd86fae6653dea716e7b613fe2cf"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc1c64934b8faf7584924143eb9db4770bbdb16659626e1a1a4d9efbcb68d947"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:ae8b03427410731469c4033934cf473426faff3e04b69d2dfb64a4281a3719f8"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:b3e71afc578b98512bfe7bdb822dd6bc57d4b0093b4b6e5487c1e96ad4ace242"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:4b8551b6e6531e156db71193771c93bda78ffc4d1e6372517fe58ad3b91e4659"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:65b3c403a5b6b8034b655e7385de4f72b7b244869a22b32d4030b99a60593eca"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:8ce11cd4d62d11166f2b441e30ace226c19a3899a7cf0796f668fba49a9fb123"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-win32.whl", hash = "sha256:66dee73039277eb35380d1b82cccc69cc82b13a66f9f4a18da32d573acf02b7c"},
- {file = "charset_normalizer-3.4.5-cp38-cp38-win_amd64.whl", hash = "sha256:d29dd9c016f2078b43d0c357511e87eee5b05108f3dd603423cb389b89813969"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:259cd1ca995ad525f638e131dbcc2353a586564c038fc548a3fe450a91882139"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a28afb04baa55abf26df544e3e5c6534245d3daa5178bc4a8eeb48202060d0e"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ff95a9283de8a457e6b12989de3f9f5193430f375d64297d323a615ea52cbdb3"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:708c7acde173eedd4bfa4028484426ba689d2103b28588c513b9db2cd5ecde9c"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aa92ec1102eaff840ccd1021478af176a831f1bccb08e526ce844b7ddda85c22"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-manylinux_2_31_armv7l.whl", hash = "sha256:5fea359734b140d0d6741189fea5478c6091b54ffc69d7ce119e0a05637d8c99"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e545b51da9f9af5c67815ca0eb40676c0f016d0b0381c86f20451e35696c5f95"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:30987f4a8ed169983f93e1be8ffeea5214a779e27ed0b059835c7afe96550ad7"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:149ec69866c3d6c2fb6f758dbc014ecb09f30b35a5ca90b6a8a2d4e54e18fdfe"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:530beedcec9b6e027e7a4b6ce26eed36678aa39e17da85e6e03d7bd9e8e9d7c9"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:14498a429321de554b140013142abe7608f9d8ccc04d7baf2ad60498374aefa2"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2820a98460c83663dd8ec015d9ddfd1e4879f12e06bb7d0500f044fb477d2770"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:aa2f963b4da26daf46231d9b9e0e2c9408a751f8f0d0f44d2de56d3caf51d294"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-win32.whl", hash = "sha256:82cc7c2ad42faec8b574351f8bc2a0c049043893853317bd9bb309f5aba6cb5a"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-win_amd64.whl", hash = "sha256:92263f7eca2f4af326cd20de8d16728d2602f7cfea02e790dcde9d83c365d7cc"},
- {file = "charset_normalizer-3.4.5-cp39-cp39-win_arm64.whl", hash = "sha256:014837af6fabf57121b6254fa8ade10dceabc3528b27b721a64bbc7b8b1d4eb4"},
- {file = "charset_normalizer-3.4.5-py3-none-any.whl", hash = "sha256:9db5e3fcdcee89a78c04dffb3fe33c79f77bd741a624946db2591c81b2fc85b0"},
- {file = "charset_normalizer-3.4.5.tar.gz", hash = "sha256:95adae7b6c42a6c5b5b559b1a99149f090a57128155daeea91732c8d970d8644"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d"},
+ {file = "charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016"},
+ {file = "charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525"},
+ {file = "charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14"},
+ {file = "charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c"},
+ {file = "charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ce8a0633f41a967713a59c4139d29110c07e826d131a316b50ce11b1d79b4f84"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaabd426fe94daf8fd157c32e571c85cb12e66692f15516a83a03264b08d06c3"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4ef880e27901b6cc782f1b95f82da9313c0eb95c3af699103088fa0ac3ce9ac"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aaba3b0819274cc41757a1da876f810a3e4d7b6eb25699253a4effef9e8e4af"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:778d2e08eda00f4256d7f672ca9fef386071c9202f5e4607920b86d7803387f2"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f155a433c2ec037d4e8df17d18922c3a0d9b3232a396690f17175d2946f0218d"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8bf8d0f749c5757af2142fe7903a9df1d2e8aa3841559b2bad34b08d0e2bcf3"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:194f08cbb32dc406d6e1aea671a68be0823673db2832b38405deba2fb0d88f63"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:6aee717dcfead04c6eb1ce3bd29ac1e22663cdea57f943c87d1eab9a025438d7"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:cd4b7ca9984e5e7985c12bc60a6f173f3c958eae74f3ef6624bb6b26e2abbae4"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_riscv64.whl", hash = "sha256:b7cf1017d601aa35e6bb650b6ad28652c9cd78ee6caff19f3c28d03e1c80acbf"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:e912091979546adf63357d7e2ccff9b44f026c075aeaf25a52d0e95ad2281074"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5cb4d72eea50c8868f5288b7f7f33ed276118325c1dfd3957089f6b519e1382a"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-win32.whl", hash = "sha256:837c2ce8c5a65a2035be9b3569c684358dfbf109fd3b6969630a87535495ceaa"},
+ {file = "charset_normalizer-3.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:44c2a8734b333e0578090c4cd6b16f275e07aa6614ca8715e6c038e865e70576"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-win32.whl", hash = "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966"},
+ {file = "charset_normalizer-3.4.4-cp39-cp39-win_arm64.whl", hash = "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50"},
+ {file = "charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f"},
+ {file = "charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"},
]
[[package]]
diff --git a/pyproject.toml b/pyproject.toml
index 820b965..fd716be 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ dynamic = ["version"]
[tool.poetry]
name = "brevo-python"
-version = "4.0.7"
+version = "4.0.6"
description = ""
readme = "README.md"
authors = []
diff --git a/reference.md b/reference.md
deleted file mode 100644
index ef6f721..0000000
--- a/reference.md
+++ /dev/null
@@ -1,26272 +0,0 @@
-# Reference
-## Account
-client.account.get_account() -> GetAccountResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves details of your Brevo account.
-
-**Use this to:**
-- Get account information (email, name, company, address)
-- Check plan details (type, credits, expiration)
-- Get relay information (for transactional emails)
-- Check Marketing Automation status
-- View date/time preferences and account settings
-- Access organization and user identifiers
-
-**Key information returned:**
-- Complete account details (organization ID, user ID, company information)
-- Address and contact information
-- Plan configurations and credit allocations across different verticals
-- Marketing Automation settings and tracker key
-- SMTP relay configuration for transactional emails
-- Date/time preferences and account settings
-- Enterprise features availability status
-
-**Important considerations:**
-- Provides comprehensive account overview for billing and configuration management
-- Essential for understanding current plan limitations and feature availability
-- Marketing Automation key required for advanced automation features
-- Plan verticals show detailed breakdown across Marketing, Chat, and CRM categories
-- Relay configuration crucial for transactional email setup and deliverability
-- Date/time preferences affect campaign scheduling and reporting displays
-- Enterprise status determines access to advanced features and sub-account management
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.account.get_account()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.account.get_account_activity(...) -> GetAccountActivityResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves user activity logs from your organization for security monitoring and audit compliance.
-
-Use this to:
-- Monitor user login activities and access patterns
-- Track account modifications and configuration changes
-- Generate security audit reports and compliance documentation
-- Investigate suspicious activities and unauthorized access
-- Monitor team member actions and account usage
-
-Key information returned:
-- Complete user activity details and timestamps
-- User identification (email, IP address, browser)
-- Action types and activity descriptions
-- Security-relevant events and access logs
-- Historical activity data for audit trails
-
-Note: Requires Enterprise plan for access to organization activity logs.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.account.get_account_activity()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]`
-
-Mandatory if endDate is used. Enter start date in UTC date (YYYY-MM-DD)
-format to filter the activity in your account. Maximum time period that
-can be selected is one month. Additionally, you can retrieve activity
-logs from the past 12 months from the date of your search.
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]`
-
-Mandatory if startDate is used. Enter end date in UTC date (YYYY-MM-DD)
-format to filter the activity in your account. Maximum time period that
-can be selected is one month.
-
-
-
-
-
--
-
-**email:** `typing.Optional[str]` β Enter the user's email address to filter their activity in the account.
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## MasterAccount
-client.master_account.create_a_new_group_of_sub_accounts(...) -> PostCorporateGroupResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows to create a group of sub-accounts
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.create_a_new_group_of_sub_accounts(
- group_name="My group",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**group_name:** `str` β The name of the group of sub-accounts
-
-
-
-
-
--
-
-**sub_account_ids:** `typing.Optional[typing.List[int]]` β Pass the list of sub-account Ids to be included in the group
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.delete_sub_account_from_group(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows you to remove a sub-organization from a group.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.delete_sub_account_from_group(
- group_id="groupId",
- sub_account_ids=[
- 423432,
- 234323,
- 87678
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**group_id:** `str` β Group id
-
-
-
-
-
--
-
-**sub_account_ids:** `typing.List[int]` β List of sub-account ids
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.get_a_group_details(...) -> GetCorporateGroupIdResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows you to retrieve a specific groupβs information such as
-the list of sub-organizations and the user associated with the group.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.get_a_group_details(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Id of the group of sub-organization
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.update_a_group_of_sub_accounts(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows to update a group of sub-accounts
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.update_a_group_of_sub_accounts(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Id of the group
-
-
-
-
-
--
-
-**group_name:** `typing.Optional[str]` β The name of the group of sub-accounts
-
-
-
-
-
--
-
-**sub_account_ids:** `typing.Optional[typing.List[int]]` β Pass the list of sub-account Ids to be included in the group
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.delete_a_group(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows you to delete a group of sub-organizations. When a
-group is deleted, the sub-organizations are no longer part of this group.
-The users associated with the group are no longer associated with the group
-once deleted.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.delete_a_group(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Id of the group
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.get_sub_account_groups() -> typing.List[GetSubAccountGroupsResponseItem]
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows you to list all groups created on your Admin account.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.get_sub_account_groups()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.get_corporate_invited_users_list(...) -> GetCorporateInvitedUsersListResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows you to list all Admin users of your Admin account. You
-can filter users by type (active or pending) and paginate results using
-offset and limit.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.get_corporate_invited_users_list()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**type:** `typing.Optional[str]`
-
-User type (active | pending). This is required if offset is provided for
-limited result.
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]`
-
-Page number for the result set. This is optional, default value will be
-the 1st page.
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]`
-
-Number of users to be displayed on each page. This is optional, the
-default limit is 20, but max allowed limit is 100.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.list_of_all_i_ps() -> typing.List[GetCorporateIpResponseItem]
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows you to retrieve the list of active IPs on your Admin
-account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.list_of_all_i_ps()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.get_the_details_of_requested_master_account() -> GetCorporateMasterAccountResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will provide the details of the master account.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.get_the_details_of_requested_master_account()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.generate_sso_token_to_access_admin_account(...) -> GetSsoToken
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint generates an SSO token to authenticate and access the admin
-account using the endpoint
-https://account-app.brevo.com/account/login/corporate/sso/[token], where
-[token] will be replaced by the actual token.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.generate_sso_token_to_access_admin_account(
- email="vipin+ent-user@brevo.com",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β User email of admin account
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.get_the_list_of_all_the_sub_accounts_of_the_master_account(...) -> GetCorporateSubAccountResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will provide the list all the sub-accounts of the master
-account.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.get_the_list_of_all_the_sub_accounts_of_the_master_account(
- offset=1,
- limit=1,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**offset:** `int` β Index of the first sub-account in the page
-
-
-
-
-
--
-
-**limit:** `int` β Number of sub-accounts to be displayed on each page
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.create_a_new_sub_account_under_a_master_account(...) -> PostCorporateSubAccountResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will create a new sub-account under a master account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.create_a_new_sub_account_under_a_master_account(
- company_name="Test Sub-account",
- email="test-sub@example.com",
- group_ids=[
- "5f8f8c3b5f56a02d4433b3a7",
- "5f8f8c3b5f56a02d4433b3a8"
- ],
- language="fr",
- timezone="Europe/Paris",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**company_name:** `str` β Set the name of the sub-account company
-
-
-
-
-
--
-
-**email:** `str` β Email address for the organization
-
-
-
-
-
--
-
-**group_ids:** `typing.Optional[typing.List[str]]` β Set the group(s) for the sub-account
-
-
-
-
-
--
-
-**language:** `typing.Optional[PostCorporateSubAccountRequestLanguage]` β Set the language of the sub-account
-
-
-
-
-
--
-
-**timezone:** `typing.Optional[str]` β Set the timezone of the sub-account
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.associate_an_ip_to_sub_accounts(...) -> typing.Dict[str, typing.Any]
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows to associate an IP to sub-accounts
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.associate_an_ip_to_sub_accounts(
- ids=[
- 234322,
- 325553,
- 893432
- ],
- ip="103.11.32.88",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**ids:** `typing.List[int]`
-
-Pass the list of sub-account Ids to be associated with the IP
-address
-
-
-
-
-
--
-
-**ip:** `str` β IP address
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.dissociate_an_ip_to_sub_accounts(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows to dissociate an IP from sub-accounts
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.dissociate_an_ip_to_sub_accounts(
- ids=[
- 234322,
- 325553,
- 893432
- ],
- ip="103.11.32.88",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**ids:** `typing.List[int]`
-
-Pass the list of sub-account Ids to be dissociated from the IP
-address
-
-
-
-
-
--
-
-**ip:** `str` β IP address
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.create_an_api_key_for_a_sub_account(...) -> PostCorporateSubAccountKeyResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will generate an API v3 key for a sub-account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.create_an_api_key_for_a_sub_account(
- id=3232323,
- name="My Api Key",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `int` β Id of the sub-account organization
-
-
-
-
-
--
-
-**name:** `str` β Name of the API key
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.generate_sso_token_to_access_sub_account(...) -> GetSsoToken
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint generates an sso token to authenticate and access a
-sub-account of the master using the account endpoint
-https://account-app.brevo.com/account/login/sub-account/sso/[token], where
-[token] will be replaced by the actual token.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.generate_sso_token_to_access_sub_account(
- id=3232323,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `int` β Id of the sub-account organization
-
-
-
-
-
--
-
-**email:** `typing.Optional[str]` β User email of sub-account organization
-
-
-
-
-
--
-
-**target:** `typing.Optional[PostCorporateSubAccountSsoTokenRequestTarget]`
-
-**Set target after login success** * **automation** - Redirect
-to Automation after login * **email_campaign** - Redirect to
-Email Campaign after login * **contacts** - Redirect to Contacts
-after login * **landing_pages** - Redirect to Landing Pages
-after login * **email_transactional** - Redirect to Email
-Transactional after login * **senders** - Redirect to Senders
-after login * **sms_campaign** - Redirect to Sms Campaign after
-login * **sms_transactional** - Redirect to Sms Transactional
-after login
-
-
-
-
-
--
-
-**url:** `typing.Optional[str]`
-
-Set the full target URL after login success. The user will land
-directly on this target URL after login
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.get_sub_account_details(...) -> GetCorporateSubAccountIdResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will provide the details for the specified sub-account company
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.get_sub_account_details(
- id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `int` β Id of the sub-account organization
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.delete_a_sub_account(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.delete_a_sub_account(
- id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `int` β Id of the sub-account organization to be deleted
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.enable_disable_sub_account_application_s(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-API endpoint for the Corporate owner to enable/disable applications on the
-sub-account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.enable_disable_sub_account_application_s(
- id=1000000,
- landing_pages=True,
- meetings=True,
- sms_campaigns=False,
- web_push=False,
- whatsapp=True,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `int` β Id of the sub-account organization (mandatory)
-
-
-
-
-
--
-
-**automation:** `typing.Optional[bool]`
-
-Set this field to enable or disable Automation on the
-sub-account
-
-
-
-
-
--
-
-**conversations:** `typing.Optional[bool]`
-
-Set this field to enable or disable Conversations on the
-sub-account
-
-
-
-
-
--
-
-**crm:** `typing.Optional[bool]` β Set this field to enable or disable Sales CRM on the sub-account
-
-
-
-
-
--
-
-**email_campaigns:** `typing.Optional[bool]`
-
-Set this field to enable or disable Email Campaigns on the
-sub-account
-
-
-
-
-
--
-
-**facebook_ads:** `typing.Optional[bool]`
-
-Set this field to enable or disable Facebook ads on the
-sub-account
-
-
-
-
-
--
-
-**inbox:** `typing.Optional[bool]`
-
-Set this field to enable or disable Inbox on the sub-account /
-Not applicable on ENTv2
-
-
-
-
-
--
-
-**landing_pages:** `typing.Optional[bool]`
-
-Set this field to enable or disable Landing pages on the
-sub-account
-
-
-
-
-
--
-
-**meetings:** `typing.Optional[bool]` β Set this field to enable or disable Meetings on the sub-account
-
-
-
-
-
--
-
-**sms_campaigns:** `typing.Optional[bool]`
-
-Set this field to enable or disable SMS Marketing on the
-sub-account
-
-
-
-
-
--
-
-**transactional_emails:** `typing.Optional[bool]`
-
-Set this field to enable or disable Transactional Email on the
-sub-account
-
-
-
-
-
--
-
-**transactional_sms:** `typing.Optional[bool]`
-
-Set this field to enable or disable Transactional SMS on the
-sub-account
-
-
-
-
-
--
-
-**web_push:** `typing.Optional[bool]` β Set this field to enable or disable Web Push on the sub-account
-
-
-
-
-
--
-
-**whatsapp:** `typing.Optional[bool]`
-
-Set this field to enable or disable Whatsapp campaigns on the
-sub-account
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.update_sub_account_plan(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will update the sub-account plan. On the Corporate solution
-new version v2, you can set an unlimited number of credits in your
-sub-organization. Please pass the value β-1" to set the consumable in
-unlimited mode.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.master_account import PutCorporateSubAccountIdPlanRequestCredits, PutCorporateSubAccountIdPlanRequestFeatures
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.update_sub_account_plan(
- id=1000000,
- credits=PutCorporateSubAccountIdPlanRequestCredits(
- email=5000,
- external_feeds=1,
- sms=2000,
- whatsapp=100,
- wp_subscribers=-1,
- ),
- features=PutCorporateSubAccountIdPlanRequestFeatures(
- inbox=10,
- landing_page=20,
- sales_users=6,
- users=15,
- ),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `int` β Id of the sub-account organization
-
-
-
-
-
--
-
-**credits:** `typing.Optional[PutCorporateSubAccountIdPlanRequestCredits]` β Credit details to update
-
-
-
-
-
--
-
-**features:** `typing.Optional[PutCorporateSubAccountIdPlanRequestFeatures]` β Features details to update
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.update_sub_accounts_plan(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will update multiple sub-accounts plan. On the Corporate
-solution new version v2, you can set an unlimited number of credits in your
-sub-organization. Please pass the value β-1" to set the consumable in
-unlimited mode.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.master_account import PutCorporateSubAccountsPlanRequestCredits, PutCorporateSubAccountsPlanRequestFeatures
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.update_sub_accounts_plan(
- credits=PutCorporateSubAccountsPlanRequestCredits(
- email=5000,
- external_feeds=1,
- sms=2000,
- whatsapp=100,
- wp_subscribers=-1,
- ),
- features=PutCorporateSubAccountsPlanRequestFeatures(
- landing_page=20,
- sales_users=6,
- users=15,
- ),
- sub_account_ids=[
- 4534345,
- 987893,
- 876785
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**credits:** `typing.Optional[PutCorporateSubAccountsPlanRequestCredits]` β Credit details to update
-
-
-
-
-
--
-
-**features:** `typing.Optional[PutCorporateSubAccountsPlanRequestFeatures]` β Features details to update
-
-
-
-
-
--
-
-**sub_account_ids:** `typing.Optional[typing.List[int]]` β List of sub-account ids
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.invite_admin_user(...) -> InviteAdminUserResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-`This endpoint allows you to invite a member to manage the Admin account
-Features and their respective permissions are as below: - `my_plan`:
- - "all"
-- `api`:
- - "none"
-- `user_management`:
- - "all"
-- `app_management` | Not available in ENTv2:
- - "all"
-- `sub_organization_groups`
- - "create"
- - "edit_delete"
-- `create_sub_organizations`
- - "all"
-- `manage_sub_organizations`
- - "all"
-- `analytics`
- - "download_data"
- - "create_alerts"
- - "my_looks"
- - "explore_create"
-- `security`
- - "all"
-**Note**: - If `all_features_access: false` then only privileges are
-required otherwise if `true` then it's assumed that all permissions will be
-there for the invited admin user.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.master_account import InviteAdminUserRequestPrivilegesItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.invite_admin_user(
- all_features_access=True,
- email="inviteuser@example.com",
- privileges=[
- InviteAdminUserRequestPrivilegesItem()
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**all_features_access:** `bool` β All access to the features
-
-
-
-
-
--
-
-**email:** `str` β Email address for the organization
-
-
-
-
-
--
-
-**privileges:** `typing.List[InviteAdminUserRequestPrivilegesItem]`
-
-
-
-
-
--
-
-**group_ids:** `typing.Optional[typing.List[str]]` β Ids of Group
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.resend_cancel_admin_user_invitation(...) -> PutCorporateUserInvitationActionEmailResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will allow the user to:
-- Resend an admin user invitation
-- Cancel an admin user invitation
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.resend_cancel_admin_user_invitation(
- action="resend",
- email="email",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**action:** `PutCorporateUserInvitationActionEmailRequestAction` β Action to be performed (cancel / resend)
-
-
-
-
-
--
-
-**email:** `str` β Email address of the recipient
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.revoke_an_admin_user(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint allows to revoke/remove an invited member of your Admin
-account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.revoke_an_admin_user(
- email="email",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β Email of the invited user
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.get_corporate_user_permission(...) -> GetCorporateUserPermissionResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will provide the list of admin user permissions
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.get_corporate_user_permission(
- email="email",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β Email of the invited user.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.master_account.change_admin_user_permissions(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will allow you to change the permissions of Admin users of
-your Admin account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.master_account import PutCorporateUserEmailPermissionsRequestPrivilegesItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.master_account.change_admin_user_permissions(
- email="email",
- all_features_access=False,
- privileges=[
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="user_management",
- permissions=[
- "all"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="api",
- permissions=[
- "all"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="my_plan",
- permissions=[
- "none"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="apps_management",
- permissions=[
- "all"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="create_sub_organizations",
- permissions=[
- "all"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="sub_organization_groups",
- permissions=[
- "create",
- "edit_delete"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="manage_sub_organizations",
- permissions=[
- "all"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="security",
- permissions=[
- "none"
- ],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="analytics",
- permissions=[
- "create_alerts",
- "download_data",
- "my_looks",
- "explore_create"
- ],
- )
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β Email address of Admin user
-
-
-
-
-
--
-
-**all_features_access:** `bool` β All access to the features
-
-
-
-
-
--
-
-**privileges:** `typing.List[PutCorporateUserEmailPermissionsRequestPrivilegesItem]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## User
-client.user.get_invited_users_list() -> GetInvitedUsersListResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.user.get_invited_users_list()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.put_revoke_user_permission(...) -> PutRevokeUserPermissionResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.user.put_revoke_user_permission(
- email="email",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β Email of the invited user.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.inviteuser(...) -> InviteuserResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-`Feature` - A Feature represents a specific functionality like Email
-campaign, Deals, Calls, Automations, etc. on Brevo. While inviting a user,
-determine which feature you want to manage access to. You must specify the
-feature accurately to avoid errors. `Permission` - A Permission defines the
-level of access or control a user has over a specific feature. While
-inviting user, decide on the permission level required for the selected
-feature. Make sure the chosen permission is related to the selected feature.
-Features and their respective permissions are as below: - `email_campaigns`:
- - "create_edit_delete"
- - "send_schedule_suspend"
-- `sms_campaigns`:
- - "create_edit_delete"
- - "send_schedule_suspend"
-- `contacts`:
- - "view"
- - "create_edit_delete"
- - "import"
- - "export"
- - "list_and_attributes"
- - "forms"
-- `templates`:
- - "create_edit_delete"
- - "activate_deactivate"
-- `workflows`:
- - "create_edit_delete"
- - "activate_deactivate_pause"
- - "settings"
-- `landing_pages`:
- - "all"
-- `transactional_emails`:
- - "settings"
- - "logs"
-- `smtp_api`:
- - "smtp"
- - "api_keys"
- - "authorized_ips"
-- `user_management`:
- - "all"
-- `sales_platform`:
- - "create_edit_deals"
- - "delete_deals"
- - "manage_others_deals_tasks"
- - "reports"
- - "settings"
-- `phone`:
- - "all"
-- `conversations`:
- - "access"
- - "assign"
- - "configure"
-- `senders_domains_dedicated_ips`:
- - "senders_management"
- - "domains_management"
- - "dedicated_ips_management"
-- `push_notifications`:
- - "view"
- - "create_edit_delete"
- - "send"
- - "settings"
-- `companies`:
- - "manage_owned_companies"
- - "manage_other_companies"
- - "settings"
-**Note**: - If `all_features_access: false` then only privileges are
-required otherwise if `true` then it's assumed that all permissions will be
-there for the invited user. - The availability of feature and its permission
-depends on your current plan. Please select the features and permissions
-accordingly.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo, InviteuserPrivilegesItem
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.user.inviteuser(
- all_features_access=True,
- email="inviteuser@example.com",
- privileges=[
- InviteuserPrivilegesItem()
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `Inviteuser`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.putresendcancelinvitation(...) -> PutresendcancelinvitationResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.user.putresendcancelinvitation(
- action="resend",
- email="email",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**action:** `PutresendcancelinvitationRequestAction` β action
-
-
-
-
-
--
-
-**email:** `str` β Email of the invited user.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.edit_user_permission(...) -> EditUserPermissionResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-`Feature` - A Feature represents a specific functionality like Email
-campaign, Deals, Calls, Automations, etc. on Brevo. While inviting a user,
-determine which feature you want to manage access to. You must specify the
-feature accurately to avoid errors. `Permission` - A Permission defines the
-level of access or control a user has over a specific feature. While
-inviting user, decide on the permission level required for the selected
-feature. Make sure the chosen permission is related to the selected feature.
-Features and their respective permissions are as below: - `email_campaigns`:
- - "create_edit_delete"
- - "send_schedule_suspend"
-- `sms_campaigns`:
- - "create_edit_delete"
- - "send_schedule_suspend"
-- `contacts`:
- - "view"
- - "create_edit_delete"
- - "import"
- - "export"
- - "list_and_attributes"
- - "forms"
-- `templates`:
- - "create_edit_delete"
- - "activate_deactivate"
-- `workflows`:
- - "create_edit_delete"
- - "activate_deactivate_pause"
- - "settings"
-- `landing_pages`:
- - "all"
-- `transactional_emails`:
- - "settings"
- - "logs"
-- `smtp_api`:
- - "smtp"
- - "api_keys"
- - "authorized_ips"
-- `user_management`:
- - "all"
-- `sales_platform`:
- - "create_edit_deals"
- - "delete_deals"
- - "manage_others_deals_tasks"
- - "reports"
- - "settings"
-- `phone`:
- - "all"
-- `conversations`:
- - "access"
- - "assign"
- - "configure"
-- `senders_domains_dedicated_ips`:
- - "senders_management"
- - "domains_management"
- - "dedicated_ips_management"
-- `push_notifications`:
- - "view"
- - "create_edit_delete"
- - "send"
- - "settings"
-- `companies`:
- - "manage_owned_companies"
- - "manage_other_companies"
- - "settings"
-**Note**: - The privileges array remains the same as in the send invitation;
-the user simply needs to provide the permissions that need to be updated. -
-The availability of feature and its permission depends on your current plan.
-Please select the features and permissions accordingly.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo, InviteuserPrivilegesItem
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.user.edit_user_permission(
- all_features_access=True,
- email="inviteuser@example.com",
- privileges=[
- InviteuserPrivilegesItem()
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `Inviteuser`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.user.get_user_permission(...) -> GetUserPermissionResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.user.get_user_permission(
- email="email",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β Email of the invited user.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Process
-client.process.get_processes(...) -> GetProcessesResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves a list of background processes from your Brevo account with filtering and pagination.
-
-**Use this to:**
-- Monitor background process activity and status
-- Track long-running operations and tasks
-- Find process IDs for detailed status checking
-- Review process history and performance
-- Identify failed or stuck processes for troubleshooting
-
-**Key information returned:**
-- Process details (ID, name, type, status)
-- Process creation and completion timestamps
-- Process progress and completion status
-- Error information for failed processes
-- Process result data and download links
-
-**Important considerations:**
-- Background processes handle long-running operations like imports and exports
-- Process status indicates current state (queued, processing, completed, failed, cancelled)
-- Export processes provide download URLs when completed
-- Failed processes include error messages for troubleshooting
-- Use pagination for accounts with many historical processes
-- Sort options available for creation order (ascending or descending)
-- Different process types handle specific operations (imports, exports, calculations)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.process.get_processes()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number limitation for the result returned
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Beginning point in the list to retrieve from.
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetProcessesRequestSort]`
-
-Sort the results in the ascending/descending order of record creation.
-Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.process.get_process(...) -> GetProcessResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves detailed information about a specific background process.
-
-**Use this to:**
-- Get detailed status of a specific process
-- Monitor process progress and completion
-- Download results from completed export processes
-- Check error details for failed processes
-- Track process execution times
-
-**Key information returned:**
-- Complete process details and status
-- Import/export statistics and results
-- Error information for troubleshooting
-- Download URLs for export processes
-- Process timing and performance data
-
-**Important considerations:**
-- Process ID must exist in your account
-- Completed processes provide detailed statistics and results
-- Export processes include download URLs when successful
-- Failed processes contain error messages for debugging
-- Timing information helps with performance analysis
-- Different process types return different result structures
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.process.get_process(
- process_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**process_id:** `int` β Id of the process
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Senders
-client.senders.get_senders(...) -> GetSendersResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves a list of all email senders from your Brevo account with optional filtering.
-
-**Use this to:**
-- Get all available senders for email campaign setup
-- Find sender details including ID, name, and email address
-- Filter senders by IP address for dedicated IP users
-- Filter senders by domain for domain-specific configurations
-- Monitor sender configuration and status
-
-**Key information returned:**
-- Sender details (ID, name, email address)
-- Sender status and verification information
-- Associated IP addresses and domains (for dedicated IP accounts)
-- Sender configuration settings
-
-**Important considerations:**
-- Standard accounts show empty IP arrays, dedicated IP accounts show IP assignments
-- Filtering by IP only available for accounts with dedicated IPs
-- Domain filtering helps organize senders by business units or brands
-- Sender status indicates if sender is active and ready for campaign use
-- Email verification required before sender can be used in campaigns
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.senders.get_senders()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**ip:** `typing.Optional[str]` β Filter your senders for a specific ip. **Available for dedicated IP usage only**
-
-
-
-
-
--
-
-**domain:** `typing.Optional[str]` β Filter your senders for a specific domain
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.senders.create_sender(...) -> CreateSenderResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a new email sender in your Brevo account.
-
-**Use this to:**
-- Add new senders for email campaigns
-- Configure sender identity (name and email)
-- Associate dedicated IPs with the sender (for dedicated IP accounts)
-- Set up domain-based sender configurations
-
-**Key information returned:**
-- Created sender ID
-- DKIM and SPF configuration status
-- Success confirmation
-
-**Important considerations:**
-- Verification email sent to specified sender address
-- DKIM and SPF configuration affects deliverability
-- Dedicated IP accounts require IP association during creation
-- IP weights must sum to 100 when specified
-- Sender must be verified before use in campaigns
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.senders.create_sender(
- email="support@example.com",
- name="Support Team",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str`
-
-From email to use for the sender. A verification email will be
-sent to this address.
-
-
-
-
-
--
-
-**name:** `str` β From Name to use for the sender
-
-
-
-
-
--
-
-**ips:** `typing.Optional[typing.List[CreateSenderRequestIpsItem]]`
-
-**Mandatory in case of dedicated IP**. IPs to associate to the
-sender. Not required for standard accounts.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.senders.get_ips() -> GetIpsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves all dedicated IPs associated with your Brevo account.
-
-Use this to:
-- List all your dedicated IPs
-- Check the status of your dedicated IPs (active/inactive)
-- Find IP addresses and associated domains for configuration purposes
-- Monitor your IP reputation and deliverability
-- Verify available IPs for sender configuration
-
-Key information returned:
-- IP ID and address
-- Associated domain
-- Active status
-- IP configuration details
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.senders.get_ips()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.senders.update_sender(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Updates an existing email sender's configuration.
-
-Use this to:
-- Modify sender display name or email address
-- Update dedicated IP associations
-- Change sender configuration settings
-- Correct sender information
-
-Key information returned:
-- Success confirmation
-- Updated sender details
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.senders.update_sender(
- sender_id=1000000,
- name="New Support Team",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**sender_id:** `int` β Id of the sender
-
-
-
-
-
--
-
-**email:** `typing.Optional[str]` β From Email to update the sender
-
-
-
-
-
--
-
-**ips:** `typing.Optional[typing.List[UpdateSenderRequestIpsItem]]`
-
-**Only in case of dedicated IP**. IPs to associate to the
-sender. If passed, will replace all the existing IPs. Not required for standard accounts.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β From Name to update the sender
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.senders.delete_sender(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Deletes an email sender from your Brevo account.
-
-Use this to:
-- Remove senders that are no longer needed
-- Clean up sender configurations
-- Remove duplicate or test senders
-
-Key information returned:
-- Success confirmation message
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.senders.delete_sender(
- sender_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**sender_id:** `int` β Id of the sender
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.senders.get_ips_from_sender(...) -> GetIpsFromSenderResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves the dedicated IPs associated with a specific sender.
-
-Use this to:
-- Check IP configuration for a sender
-- Verify dedicated IP associations
-- Get IP details for troubleshooting
-- Monitor sender IP configuration
-
-Key information returned:
-- List of associated dedicated IPs
-- IP addresses and domain configurations
-- IP status and settings
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.senders.get_ips_from_sender(
- sender_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**sender_id:** `int` β Id of the sender
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.senders.validate_sender_by_otp(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Validates a sender using the OTP (One-Time Password) received via email.
-
-Use this to:
-- Complete sender verification process
-- Activate a newly created sender
-- Verify ownership of the sender email address
-- Enable the sender for use in email campaigns
-
-Key information returned:
-- Success confirmation of sender verification
-- Sender activation status
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.senders.validate_sender_by_otp(
- sender_id=1000000,
- otp=123456,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**sender_id:** `int` β Id of the sender
-
-
-
-
-
--
-
-**otp:** `int` β 6 digit OTP received on email
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Domains
-client.domains.get_domains() -> GetDomainsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves all domains associated with the account.
-
-Use this to:
-- List all domains
-- Verify domain existence
-- Check domain authentication and verification status
-- Monitor domain configuration and provider information
-- Review domain creation history and ownership
-
-Key information returned:
-- Domain details (ID, name, authentication status)
-- Verification and authentication states
-- Associated IP addresses and DNS providers
-- Creator information and creation timestamps
-- Pagination information for large domain lists
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.domains.get_domains()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.domains.create_domain(...) -> CreateDomainResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a new domain in Brevo.
-
-Use this to:
-- Add new domains for sending emails
-- Set up domain authentication for better deliverability
-- Configure DNS records for email authentication
-- Establish domain-based sender identities
-
-Key information returned:
-- Created domain ID and configuration
-- Required DNS records for authentication
-- Domain provider detection results
-- Setup instructions and next steps
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.domains.create_domain(
- name="mycompany.com",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**name:** `str` β Domain name to be added
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.domains.get_domain_configuration(...) -> GetDomainConfigurationResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves configuration of a specific domain, to know if the domain is valid or not.
-
-Use this to:
-- Check domain configuration
-- Validate a domain configuration
-- Monitor DNS record status
-- Troubleshoot authentication issues
-
-Key information returned:
-- Domain verification and authentication status
-- DNS records configuration and validation status
-- Detailed authentication requirements
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.domains.get_domain_configuration(
- domain_name="domainName",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**domain_name:** `str` β Domain name
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.domains.delete_domain(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Deletes a domain from Brevo.
-
-Use this to:
-- Remove existing domains
-- Clean up unused domain configurations
-- Remove test domains
-
-Key information returned:
-- Success confirmation message
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.domains.delete_domain(
- domain_name="domainName",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**domain_name:** `str` β Domain name
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.domains.authenticate_domain(...) -> AuthenticateDomainResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Authenticates a specific domain.
-
-Use this to:
-- Authenticate a domain
-- Verify DNS record configuration
-- Complete domain setup for sending
-- Enable domain for email authentication
-
-Key information returned:
-- Authentication success confirmation
-- Domain readiness status for email sending
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.domains.authenticate_domain(
- domain_name="domainName",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**domain_name:** `str` β Domain name
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Webhooks
-client.webhooks.get_webhooks(...) -> GetWebhooksResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves all webhooks from your Brevo account with filtering and sorting options.
-
-Use this to:
-- Monitor webhook configurations and event handling
-- List webhooks by type (transactional, marketing, inbound)
-- Review webhook endpoints and authentication
-- Track webhook creation and modification history
-- Audit webhook event subscriptions
-
-Key information returned:
-- Complete webhook details and configuration
-- Event types and channel subscriptions
-- Authentication and security settings
-- Webhook URLs and custom headers
-- Creation and modification timestamps
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.webhooks.get_webhooks()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**type:** `typing.Optional[GetWebhooksRequestType]` β Filter on webhook type
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetWebhooksRequestSort]` β Sort the results in the ascending/descending order of webhook creation
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.webhooks.create_webhook(...) -> CreateWebhookResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a new webhook to receive real-time notifications for specified events.
-
-Use this to:
-- Set up event notifications for transactional or marketing emails
-- Configure webhook endpoints for campaign tracking
-- Enable real-time monitoring of email delivery status
-- Subscribe to contact list changes and updates
-- Implement custom event handling and automation
-
-Key information returned:
-- Created webhook ID and configuration
-- Success confirmation and setup details
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.webhooks.create_webhook(
- events=[
- "sent"
- ],
- url="http://requestb.in/173lyyx1",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**events:** `typing.List[CreateWebhookRequestEventsItem]`
-
-- Events triggering the webhook. Possible values for
-**Transactional** type webhook: #### `sent` OR `request`,
-`delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`,
-`invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and
-`unsubscribed` - Possible values for **Marketing** type webhook:
-#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`,
-`unsubscribed`, `listAddition` & `delivered` - Possible values
-for **Inbound** type webhook: #### `inboundEmailProcessed` -
-Possible values for type **Transactional** and channel **SMS**
-####
-`accepted`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
-`subscribe`,`sent`,`blacklisted`,`skip` - Possible values for
-type **Marketing** channel **SMS** ####
-`sent`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
-`subscribe`,`skip`
-#### `reply`
-
-
-
-
-
--
-
-**url:** `str` β URL of the webhook
-
-
-
-
-
--
-
-**auth:** `typing.Optional[CreateWebhookRequestAuth]` β Add authentication on webhook url
-
-
-
-
-
--
-
-**batched:** `typing.Optional[bool]` β To send batched webhooks
-
-
-
-
-
--
-
-**channel:** `typing.Optional[CreateWebhookRequestChannel]` β channel of webhook
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Description of the webhook
-
-
-
-
-
--
-
-**domain:** `typing.Optional[str]`
-
-Inbound domain of webhook, required in case of event type
-`inbound`
-
-
-
-
-
--
-
-**headers:** `typing.Optional[typing.List[CreateWebhookRequestHeadersItem]]` β Custom headers to be send with webhooks
-
-
-
-
-
--
-
-**type:** `typing.Optional[CreateWebhookRequestType]` β Type of the webhook
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.webhooks.export_webhooks_history(...) -> ExportWebhooksHistoryResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-
-This is an enterprise feature. Contact us to activate it for your account.
-
-
-Submits a request to export webhook event history as a CSV file. The download link is sent to the `notifyURL` you provide in the request body.
-
-Use this endpoint to:
-- Export webhook event history filtered by date range, event type, or email address
-- Generate reports for compliance, auditing, or performance analysis
-- Track delivery patterns and webhook reliability over time
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.webhooks.export_webhooks_history(
- event="invalid_parameter",
- notify_url="https://brevo.com",
- type="transactional",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**event:** `ExportWebhooksHistoryRequestEvent` β Filter the history for a specific event type
-
-
-
-
-
--
-
-**notify_url:** `str` β Webhook URL to receive CSV file link
-
-
-
-
-
--
-
-**type:** `ExportWebhooksHistoryRequestType` β Filter the history based on webhook type
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]`
-
-Number of days in the past including today (positive
-integer). _Not compatible with 'startDate' and 'endDate'_
-
-
-
-
-
--
-
-**email:** `typing.Optional[str]` β Filter the history for a specific email
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]`
-
-Mandatory if startDate is used. Ending date of the report
-(YYYY-MM-DD). Must be greater than equal to startDate
-
-
-
-
-
--
-
-**message_id:** `typing.Optional[int]`
-
-Filter the history for a specific message id. Applicable
-only for transactional webhooks.
-
-
-
-
-
--
-
-**sort:** `typing.Optional[str]` β Sorting order of records (asc or desc)
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]`
-
-Mandatory if endDate is used. Starting date of the history
-(YYYY-MM-DD). Must be lower than equal to endDate
-
-
-
-
-
--
-
-**webhook_id:** `typing.Optional[int]` β Filter the history for a specific webhook id
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.webhooks.get_webhook(...) -> GetWebhook
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves detailed information about a specific webhook configuration.
-
-Use this to:
-- Get complete webhook configuration and settings
-- Check webhook event subscriptions and triggers
-- Review authentication and security settings
-- Verify webhook URL and custom headers
-- Access webhook creation and modification history
-
-Key information returned:
-- Complete webhook details and configuration
-- Event types and channel subscriptions
-- Authentication credentials and methods
-- Custom headers and request settings
-- Webhook status and activity information
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.webhooks.get_webhook(
- webhook_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**webhook_id:** `int` β Id of the webhook
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.webhooks.update_webhook(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Updates an existing webhook configuration and event subscriptions.
-
-Use this to:
-- Modify webhook event subscriptions and triggers
-- Update webhook URL and endpoint configuration
-- Change authentication settings and credentials
-- Adjust custom headers and request parameters
-- Enable or disable specific webhook events
-
-Key information returned:
-- Success confirmation of webhook updates
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.webhooks.update_webhook(
- webhook_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**webhook_id:** `int` β Id of the webhook
-
-
-
-
-
--
-
-**auth:** `typing.Optional[UpdateWebhookRequestAuth]` β Add authentication on webhook url
-
-
-
-
-
--
-
-**batched:** `typing.Optional[bool]` β To send batched webhooks
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Description of the webhook
-
-
-
-
-
--
-
-**domain:** `typing.Optional[str]` β Inbound domain of webhook, used in case of event type `inbound`
-
-
-
-
-
--
-
-**events:** `typing.Optional[typing.List[UpdateWebhookRequestEventsItem]]`
-
-- Events triggering the webhook. Possible values for
-**Transactional** type webhook: #### `sent` OR `request`,
-`delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`,
-`invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and
-`unsubscribed` - Possible values for **Marketing** type webhook:
-#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`,
-`unsubscribed`, `listAddition` & `delivered` - Possible values
-for **Inbound** type webhook: #### `inboundEmailProcessed`
-#### `reply`
-
-
-
-
-
--
-
-**headers:** `typing.Optional[typing.List[UpdateWebhookRequestHeadersItem]]` β Custom headers to be send with webhooks
-
-
-
-
-
--
-
-**url:** `typing.Optional[str]` β URL of the webhook
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.webhooks.delete_webhook(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Permanently deletes a webhook and stops all event notifications.
-
-Use this to:
-- Remove unused or obsolete webhook configurations
-- Clean up webhook endpoints and subscriptions
-- Stop event notifications to specific URLs
-- Maintain organized webhook management
-
-Key information returned:
-- Success confirmation of webhook deletion
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.webhooks.delete_webhook(
- webhook_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**webhook_id:** `int` β Id of the webhook
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## ExternalFeeds
-client.external_feeds.get_all_external_feeds(...) -> GetAllExternalFeedsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves all external feeds from your Brevo account with filtering and pagination.
-
-**Use this to:**
-- Get an overview of all external data feeds
-- Find feeds by name using search functionality
-- Filter feeds by creation date range
-- Browse feeds by authentication type
-- Monitor feed library organization and usage
-
-**Key information returned:**
-- Feed details (UUID, name, URL, authentication type)
-- Feed configuration and settings
-- Creation and modification timestamps
-- Feed status and error information
-- Authentication and header configurations
-
-**Important considerations:**
-- External feeds enable dynamic content in email campaigns
-- Feeds must be accessible from Brevo servers
-- Authentication credentials are securely stored
-- Feed performance affects campaign delivery
-- Use pagination for accounts with many feeds
-- Date range filtering limited to 30 days maximum
-- Search functionality works on feed name matching
-- Internal feeds are system-managed and cannot be modified
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-import datetime
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.external_feeds.get_all_external_feeds(
- search="product",
- start_date=datetime.date.fromisoformat("2024-01-01"),
- end_date=datetime.date.fromisoformat("2024-01-31"),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**search:** `typing.Optional[str]` β Can be used to filter records by search keyword on feed name
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[datetime.date]`
-
-Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which
-you want to fetch the list. Can be maximum 30 days older than current
-date.
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[datetime.date]`
-
-Mandatory if `startDate` is used. Ending date (YYYY-MM-DD) till which
-you want to fetch the list. Maximum time period that can be selected is
-one month.
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetAllExternalFeedsRequestSort]`
-
-Sort the results in the ascending/descending order of record creation.
-Default order is **descending** if `sort` is not passed.
-
-
-
-
-
--
-
-**auth_type:** `typing.Optional[GetAllExternalFeedsRequestAuthType]` β Filter the records by `authType` of the feed.
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page.
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document on the page.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.external_feeds.create_external_feed(...) -> CreateExternalFeedResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a new external feed for dynamic content in email campaigns.
-
-**Use this to:**
-- Set up external data sources for dynamic content
-- Configure authentication for protected feeds
-- Enable real-time content updates in campaigns
-- Establish connections to product catalogs, blogs, or APIs
-
-**Key information returned:**
-- Created feed UUID for reference in campaigns
-- Success confirmation
-
-**Important considerations:**
-- Feed URL must be accessible from Brevo infrastructure
-- Authentication credentials are securely encrypted
-- Test feed accessibility before campaign use
-- Consider feed response time for campaign performance
-- Monitor feed reliability and uptime
-- Use caching for frequently accessed feeds
-- Maximum 5 retry attempts allowed for failed requests
-- Custom headers support for API integration requirements
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.external_feeds.create_external_feed(
- name="Public API Feed",
- url="https://jsonplaceholder.typicode.com/posts",
- auth_type="noAuth",
- max_retries=3,
- cache=True,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**name:** `str` β Name of the feed
-
-
-
-
-
--
-
-**url:** `str` β URL of the external data source
-
-
-
-
-
--
-
-**auth_type:** `typing.Optional[CreateExternalFeedRequestAuthType]` β Authentication type for accessing the feed
-
-
-
-
-
--
-
-**username:** `typing.Optional[str]` β Username for basic authentication (required if authType is 'basic')
-
-
-
-
-
--
-
-**password:** `typing.Optional[str]` β Password for basic authentication (required if authType is 'basic')
-
-
-
-
-
--
-
-**token:** `typing.Optional[str]` β Token for token-based authentication (required if authType is 'token')
-
-
-
-
-
--
-
-**max_retries:** `typing.Optional[int]` β Maximum number of retry attempts for failed requests
-
-
-
-
-
--
-
-**cache:** `typing.Optional[bool]` β Whether to cache the feed response
-
-
-
-
-
--
-
-**headers:** `typing.Optional[typing.List[CreateExternalFeedRequestHeadersItem]]` β Custom HTTP headers for the feed request
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.external_feeds.get_external_feed_by_uuid(...) -> GetExternalFeedByUuidResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Retrieves details of a specific external feed by its UUID.
-
-**Use this to:**
-- Get complete configuration of an external feed
-- Check feed authentication settings
-- Review feed personalization options
-- Verify feed URL and parameters
-- Monitor feed modification history
-
-**Key information returned:**
-- Complete feed configuration and settings
-- Authentication credentials and headers
-- Personalization and fallback settings
-- Creation and modification timestamps
-- Cache and retry configurations
-
-**Important considerations:**
-- UUID must exist in your account
-- Provides complete feed information for troubleshooting
-- Essential before making modifications
-- Shows current feed health status
-- Useful for debugging feed issues
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.external_feeds.get_external_feed_by_uuid(
- uuid_="b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**uuid:** `str` β UUID of the feed to fetch
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.external_feeds.update_external_feed(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Updates configuration of an existing external feed.
-
-**Use this to:**
-- Update feed URLs when data sources change
-- Modify authentication credentials
-- Change cache and retry settings
-- Update custom headers
-- Rename feeds for better organization
-
-**Key information returned:**
-- Success confirmation message
-
-**Important considerations:**
-- Only provided fields will be updated
-- Feed UUID must exist in your account
-- Authentication changes require verification
-- URL changes should be tested before campaign use
-- Monitor campaigns using this feed after updates
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.external_feeds.update_external_feed(
- uuid_="b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6",
- name="Updated Product Catalog",
- url="https://api.newstore.com/products/v2",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**uuid:** `str` β UUID of the feed to update
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of the feed
-
-
-
-
-
--
-
-**url:** `typing.Optional[str]` β URL of the external data source
-
-
-
-
-
--
-
-**auth_type:** `typing.Optional[UpdateExternalFeedRequestAuthType]` β Authentication type for accessing the feed
-
-
-
-
-
--
-
-**username:** `typing.Optional[str]` β Username for basic authentication
-
-
-
-
-
--
-
-**password:** `typing.Optional[str]` β Password for basic authentication
-
-
-
-
-
--
-
-**token:** `typing.Optional[str]` β Token for token-based authentication
-
-
-
-
-
--
-
-**headers:** `typing.Optional[typing.List[UpdateExternalFeedRequestHeadersItem]]` β Custom HTTP headers for the feed request
-
-
-
-
-
--
-
-**max_retries:** `typing.Optional[int]` β Maximum number of retry attempts for failed requests
-
-
-
-
-
--
-
-**cache:** `typing.Optional[bool]` β Whether to cache the feed response
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.external_feeds.delete_external_feed(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Deletes an external feed from your Brevo account.
-
-**Use this to:**
-- Remove external feeds that are no longer needed
-- Clean up unused data sources
-- Remove test or outdated feeds
-- Maintain organized feed library
-
-**Key information returned:**
-- Success confirmation message
-
-**Important considerations:**
-- This action is PERMANENT and cannot be undone
-- Feed configuration and history will be lost
-- Check if feed is used in active campaigns before deletion
-- Remove feed references from email templates
-- Consider deactivating instead of deleting if unsure
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.external_feeds.delete_external_feed(
- uuid_="b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**uuid:** `str` β UUID of the feed to delete
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## CustomObjects
-client.custom_objects.upsertrecords(...) -> UpsertrecordsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Custom objects are only available to Enterprise plans.
-This feature is in beta. These are subject to change.
-This API allows bulk upsert of object records in a single request. Each object record may include
- - Attributes
- - Identifiers
- - Associations
-**Response:**
- The API processes the request asynchronously and returns a processId that you can use to track the background process status.
-**API and Schema Limitation:**
- - Size:
- - Max 1000 objects records per request
- - Max request body size: 1 MB
- - Max 500 attributes defined per object record upsert request
- - This is coherent with schema limitation: an object cannot have more than 500 attributes.
- - Worth noting: Nothing happens If an attribute is mentioned in the request, but was not previously defined for the object schema (no error, no attribute creation)
- - Max 10 associations defined per associated object type, in each record of the request
- - This is not a schema limitation. You can associate an object record to an unlimited number of other object records by running multiple requests.
-**Errors:**
- - Make sure both object records exist before associating them, else the API will return an error.
- - This route does not create objects. The object where the object records are upserted by this API must be created already else the API will return an error "invalid object type".
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.custom_objects import UpsertrecordsRequestRecordsItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.custom_objects.upsertrecords(
- object_type="vehicle",
- records=[
- UpsertrecordsRequestRecordsItem()
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**object_type:** `str` β object type for the attribute
-
-
-
-
-
--
-
-**records:** `typing.List[UpsertrecordsRequestRecordsItem]` β List of object records to be upsert. Each record can have attributes, identifiers, and associations.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.custom_objects.getrecords(...) -> GetrecordsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Custom objects are only available to Enterprise plans.
-This feature is in beta. These are subject to change.
-This API retrieves a list of object records along with their associated records and provides the total count of records for the specified object. **Note**: Contact as object type is not supported in this endpoint.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.custom_objects.getrecords(
- object_type="vehicle",
- limit=1000000,
- page_num=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**object_type:** `str` β object type for the attribute
-
-
-
-
-
--
-
-**limit:** `int` β Number of records returned per page
-
-
-
-
-
--
-
-**page_num:** `int` β Page number for pagination. It's used to fetch the object records on a provided page number. Must be a valid positive integer.
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetrecordsRequestSort]` β Sort order, must be 'asc' or 'desc'. Default to 'desc' if not provided.
-
-
-
-
-
--
-
-**association:** `typing.Optional[GetrecordsRequestAssociation]` β Whether to include associations, must be 'true' or 'false'. Default to 'false' if not provided.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.custom_objects.batch_delete_object_records(...) -> BatchDeleteObjectRecordsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Use this endpoint to delete multiple object records of the same object-type in one request.
-The request is accepted and processed asynchronously. You can track the status of the deletion process using the returned **processId**.
-**API and Schema Limitations:** - Each request can contain up to **1000** object record identifiers - If more records must be deleted β send multiple batch requests
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.custom_objects import BatchDeleteObjectRecordsRequestIdentifiersIds
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.custom_objects.batch_delete_object_records(
- object_type="vehicle",
- identifiers=BatchDeleteObjectRecordsRequestIdentifiersIds(),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**object_type:** `str` β Object type for the records to delete
-
-
-
-
-
--
-
-**identifiers:** `typing.Optional[BatchDeleteObjectRecordsRequestIdentifiers]` β One of the below must be provided
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Contacts
-client.contacts.get_contacts(...) -> GetContacts
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_contacts()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**modified_since:** `typing.Optional[str]` β Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**created_since:** `typing.Optional[str]` β Filter (urlencoded) the contacts created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetContactsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**segment_id:** `typing.Optional[int]` β Id of the segment. **Either listIds or segmentId can be passed.**
-
-
-
-
-
--
-
-**list_ids:** `typing.Optional[typing.Union[int, typing.Sequence[int]]]` β Ids of the list. **Either listIds or segmentId can be passed.**
-
-
-
-
-
--
-
-**filter:** `typing.Optional[str]` β Filter the contacts on the basis of attributes. **Allowed operator: equals. For multiple-choice options, the filter will apply an AND condition between the options. For category attributes, the filter will work with both id and value. (e.g. filter=equals(FIRSTNAME,"Antoine"), filter=equals(B1, true), filter=equals(DOB, "1989-11-23"), filter=equals(GENDER, "1"), filter=equals(GENDER, "MALE"), filter=equals(COUNTRY,"USA, INDIA")**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.create_contact(...) -> CreateContactResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Follow this format when passing a "SMS" phone number as an attribute.
-Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx
-Creates new contacts on Brevo. Contacts can be created by passing either -
1. email address of the contact (email_id),
2. phone number of the contact (to be passed as "SMS" field in "attributes" along with proper country code), For example- {"SMS":"+91xxxxxxxxxx"} or {"SMS":"0091xxxxxxxxxx"}
3. ext_id
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.create_contact()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**attributes:** `typing.Optional[typing.Dict[str, CreateContactRequestAttributesValue]]` β Pass the set of attributes and their values. The attribute's parameter should be passed in capital letter while creating a contact. Values that don't match the attribute type (e.g. text or string in a date attribute) will be ignored. **These attributes must be present in your Brevo account**. For eg: **{"FNAME":"Elly", "LNAME":"Roger", "COUNTRIES": ["India","China"]}**
-
-
-
-
-
--
-
-**email:** `typing.Optional[str]` β Email address of the user. **Mandatory if "ext_id" & "SMS" field is not passed.**
-
-
-
-
-
--
-
-**email_blacklisted:** `typing.Optional[bool]` β Set this field to blacklist the contact for emails (emailBlacklisted = true)
-
-
-
-
-
--
-
-**ext_id:** `typing.Optional[str]` β Pass your own Id to create a contact.
-
-
-
-
-
--
-
-**list_ids:** `typing.Optional[typing.List[int]]` β Ids of the lists to add the contact to
-
-
-
-
-
--
-
-**sms_blacklisted:** `typing.Optional[bool]` β Set this field to blacklist the contact for SMS (smsBlacklisted = true)
-
-
-
-
-
--
-
-**smtp_blacklist_sender:** `typing.Optional[typing.List[str]]` β transactional email forbidden sender for contact. Use only for email Contact ( only available if updateEnabled = true )
-
-
-
-
-
--
-
-**update_enabled:** `typing.Optional[bool]` β Facilitate to update the existing contact in the same request (updateEnabled = true)
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_attributes() -> GetAttributesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_attributes()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.create_attribute(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.create_attribute(
- attribute_category="normal",
- attribute_name="attributeName",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**attribute_category:** `CreateAttributeRequestAttributeCategory` β Category of the attribute
-
-
-
-
-
--
-
-**attribute_name:** `str` β Name of the attribute
-
-
-
-
-
--
-
-**enumeration:** `typing.Optional[typing.List[CreateAttributeRequestEnumerationItem]]` β List of values and labels that the attribute can take. **Use only if the attribute's category is "category"**. None of the category options can exceed max 200 characters. For example: **[{"value":1, "label":"male"}, {"value":2, "label":"female"}]**
-
-
-
-
-
--
-
-**is_recurring:** `typing.Optional[bool]` β Type of the attribute. **Use only if the attribute's category is 'calculated' or 'global'**
-
-
-
-
-
--
-
-**multi_category_options:** `typing.Optional[typing.List[str]]` β List of options you want to add for multiple-choice attribute. **Use only if the attribute's category is "normal" and attribute's type is "multiple-choice". None of the multicategory options can exceed max 200 characters.** For example: **["USA","INDIA"]**
-
-
-
-
-
--
-
-**type:** `typing.Optional[CreateAttributeRequestType]` β Type of the attribute. **Use only if the attribute's category is 'normal', 'category' or 'transactional'** Type **user and multiple-choice** is only available if the category is **normal** attribute Type **id** is only available if the category is **transactional** attribute Type **category** is only available if the category is **category** attribute
-
-
-
-
-
--
-
-**value:** `typing.Optional[str]` β Value of the attribute. **Use only if the attribute's category is 'calculated' or 'global'**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.update_attribute(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.update_attribute(
- attribute_category="category",
- attribute_name="attributeName",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**attribute_category:** `UpdateAttributeRequestAttributeCategory` β Category of the attribute
-
-
-
-
-
--
-
-**attribute_name:** `str` β Name of the existing attribute
-
-
-
-
-
--
-
-**enumeration:** `typing.Optional[typing.List[UpdateAttributeRequestEnumerationItem]]` β List of the values and labels that the attribute can take. **Use only if the attribute's category is "category"** None of the category options can exceed max 200 characters. For example, **[{"value":1, "label":"male"}, {"value":2, "label":"female"}]**
-
-
-
-
-
--
-
-**multi_category_options:** `typing.Optional[typing.List[str]]` β Use this option to add multiple-choice attributes options only if the attribute's category is "normal". **This option is specifically designed for updating multiple-choice attributes. None of the multicategory options can exceed max 200 characters.**. For example: **["USA","INDIA"]**
-
-
-
-
-
--
-
-**value:** `typing.Optional[str]` β Value of the attribute to update. **Use only if the attribute's category is 'calculated' or 'global'**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.delete_attribute(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.delete_attribute(
- attribute_category="normal",
- attribute_name="attributeName",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**attribute_category:** `DeleteAttributeRequestAttributeCategory` β Category of the attribute
-
-
-
-
-
--
-
-**attribute_name:** `str` β Name of the existing attribute
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.delete_multi_attribute_options(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.delete_multi_attribute_options(
- multiple_choice_attribute="multipleChoiceAttribute",
- multiple_choice_attribute_option="multipleChoiceAttributeOption",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**attribute_type:** `typing.Literal` β Type of the attribute
-
-
-
-
-
--
-
-**multiple_choice_attribute:** `str` β Name of the existing multiple-choice attribute
-
-
-
-
-
--
-
-**multiple_choice_attribute_option:** `str` β Name of the existing multiple-choice attribute option that you want to delete
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.update_batch_contacts(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.update_batch_contacts()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**contacts:** `typing.Optional[typing.List[UpdateBatchContactsRequestContactsItem]]` β List of contacts to be updated
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.create_doi_contact(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-attributes param in this endpoint is an object containing key-value pairs where values can be either a string, integer, array, or boolean. You can create key-value pairs with these four datatypes. When a value is an array, it should be an array of strings.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.create_doi_contact(
- email="elly@example.com",
- include_list_ids=[
- 36
- ],
- redirection_url="http://requestb.in/173lyyx1",
- template_id=2,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β Email address where the confirmation email will be sent. This email address will be the identifier for all other contact attributes.
-
-
-
-
-
--
-
-**include_list_ids:** `typing.List[int]` β Lists under user account where contact should be added
-
-
-
-
-
--
-
-**redirection_url:** `str` β URL of the web page that user will be redirected to after clicking on the double opt in URL. When editing your DOI template you can reference this URL by using the tag **{{ params.DOIurl }}**.
-
-
-
-
-
--
-
-**template_id:** `int` β Id of the Double opt-in (DOI) template
-
-
-
-
-
--
-
-**attributes:** `typing.Optional[typing.Dict[str, CreateDoiContactRequestAttributesValue]]` β Pass the set of attributes and their values. **These attributes must be present in your Brevo account**. For eg. **{'FNAME':'Elly', 'LNAME':'Roger', 'COUNTRIES': ['India','China']}**
-
-
-
-
-
--
-
-**exclude_list_ids:** `typing.Optional[typing.List[int]]` β Lists under user account where contact should not be added
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.request_contact_export(...) -> RequestContactExportResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-It returns the background process ID which on completion calls the notify URL that you have set in the input. File will be available in csv.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.contacts import RequestContactExportRequestCustomContactFilter
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.request_contact_export(
- custom_contact_filter=RequestContactExportRequestCustomContactFilter(),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**custom_contact_filter:** `RequestContactExportRequestCustomContactFilter` β Set the filter for the contacts to be exported.
-
-
-
-
-
--
-
-**disable_notification:** `typing.Optional[bool]` β To avoid generating the email notification upon contact export, pass **true**
-
-
-
-
-
--
-
-**export_attributes:** `typing.Optional[typing.List[str]]` β List of all the attributes that you want to export. **These attributes must be present in your contact database. It is required if exportMandatoryAttributes is set false. ** For example: **['fname', 'lname', 'email']**
-
-
-
-
-
--
-
-**export_mandatory_attributes:** `typing.Optional[bool]` β To export mandatory attributes like EMAIL, ADDED_TIME, MODIFIED_TIME
-
-
-
-
-
--
-
-**export_metadata:** `typing.Optional[typing.List[str]]` β Export metadata of contacts such as _listIds, ADDED_TIME, MODIFIED_TIME.
-
-
-
-
-
--
-
-**export_date_in_utc:** `typing.Optional[bool]` β Specifies whether the date fields createdAt, modifiedAt in the exported data should be returned in UTC format.
-
-
-
-
-
--
-
-**export_subscription_status:** `typing.Optional[typing.List[str]]` β Export subscription status of contacts for email & sms marketting. Pass email_marketing to obtain the marketing email subscription status & sms_marketing to retrieve the marketing SMS status of the contact.
-
-
-
-
-
--
-
-**notify_url:** `typing.Optional[str]` β Webhook that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_folders(...) -> GetFoldersResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Ongoing changes for this endpoint
-We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
-These are non breaking changes.
-The default value for the attributes will be 0.
-The uniqueSubscribers field is deprecated
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_folders()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetFoldersRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.create_folder(...) -> CreateFolderResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.create_folder()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `CreateUpdateFolder`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_folder(...) -> GetFolder
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Ongoing changes for this endpoint.
-We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
-These are non breaking changes. The default value for the attributes will be 0.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_folder(
- folder_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**folder_id:** `int` β id of the folder
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.update_folder(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.update_folder(
- folder_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**folder_id:** `int` β Id of the folder
-
-
-
-
-
--
-
-**request:** `CreateUpdateFolder`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.delete_folder(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.delete_folder(
- folder_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**folder_id:** `int` β Id of the folder
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_folder_lists(...) -> GetFolderListsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Ongoing changes for this endpoint.
-We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
-These are non breaking changes. The default value for the attributes will be 0.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_folder_lists(
- folder_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**folder_id:** `int` β Id of the folder
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetFolderListsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.import_contacts(...) -> ImportContactsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-It returns the background process ID which on completion calls the notify URL that you have set in the input. **Note**: - Any contact attribute that doesn't exist in your account will be ignored at import end.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.import_contacts()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**disable_notification:** `typing.Optional[bool]` β To disable email notification
-
-
-
-
-
--
-
-**email_blacklist:** `typing.Optional[bool]` β To blacklist all the contacts for email
-
-
-
-
-
--
-
-**empty_contacts_attributes:** `typing.Optional[bool]` β To facilitate the choice to erase any attribute of the existing contacts with empty value. emptyContactsAttributes = true means the empty fields in your import will erase any attribute that currently contain data in Brevo, & emptyContactsAttributes = false means the empty fields will not affect your existing data ( **only available if `updateExistingContacts` set to true **)
-
-
-
-
-
--
-
-**file_body:** `typing.Optional[str]` β **Mandatory if fileUrl and jsonBody is not defined.** CSV content to be imported. Use semicolon to separate multiple attributes. **Maximum allowed file body size is 10MB** . However we recommend a safe limit of around 8 MB to avoid the issues caused due to increase of file body size while parsing. Please use fileUrl instead to import bigger files.
-
-
-
-
-
--
-
-**file_url:** `typing.Optional[str]` β **Mandatory if fileBody and jsonBody is not defined.** URL of the file to be imported (**no local file**). Possible file formats: #### .txt, .csv, .json
-
-
-
-
-
--
-
-**json_body:** `typing.Optional[typing.List[ImportContactsRequestJsonBodyItem]]` β **Mandatory if fileUrl and fileBody is not defined.** JSON content to be imported. **Maximum allowed json body size is 10MB** . However we recommend a safe limit of around 8 MB to avoid the issues caused due to increase of json body size while parsing. Please use fileUrl instead to import bigger files.
-
-
-
-
-
--
-
-**list_ids:** `typing.Optional[typing.List[int]]` β **Mandatory if newList is not defined.** Ids of the lists in which the contacts shall be imported. For example, **[2, 4, 7]**.
-
-
-
-
-
--
-
-**new_list:** `typing.Optional[ImportContactsRequestNewList]` β To create a new list and import the contacts into it, pass the listName and an optional folderId.
-
-
-
-
-
--
-
-**notify_url:** `typing.Optional[str]` β URL that will be called once the import process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
-
-
-
-
-
--
-
-**sms_blacklist:** `typing.Optional[bool]` β To blacklist all the contacts for sms
-
-
-
-
-
--
-
-**update_existing_contacts:** `typing.Optional[bool]` β To facilitate the choice to update the existing contacts
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_lists(...) -> GetListsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Ongoing changes for this endpoint.
-We're dropping support for the response attributes totalSubscribers and totalBlacklisted.
-These are non breaking changes. The default value for the attributes will be 0.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_lists()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetListsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.create_list(...) -> CreateListResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.create_list(
- folder_id=2,
- name="Magento Customer - ES",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**folder_id:** `int` β Id of the parent folder in which this list is to be created
-
-
-
-
-
--
-
-**name:** `str` β Name of the list
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_list(...) -> GetListResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_list(
- list_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**list_id:** `int` β Id of the list
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to aggregate the sent email campaigns for a specific list id. **Prefer to pass your timezone in date-time format for accurate result**
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to aggregate the sent email campaigns for a specific list id. **Prefer to pass your timezone in date-time format for accurate result**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.update_list(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.update_list(
- list_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**list_id:** `int` β Id of the list
-
-
-
-
-
--
-
-**folder_id:** `typing.Optional[int]` β Id of the folder in which the list is to be moved. Either of the two parameters (name, folderId) can be updated at a time.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of the list. Either of the two parameters (name, folderId) can be updated at a time.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.delete_list(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.delete_list(
- list_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**list_id:** `int` β Id of the list
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_contacts_from_list(...) -> GetContacts
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_contacts_from_list(
- list_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**list_id:** `int` β Id of the list
-
-
-
-
-
--
-
-**modified_since:** `typing.Optional[str]` β Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetContactsFromListRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.add_contact_to_list(...) -> PostContactInfo
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.contacts import AddContactToListRequestBodyEmails
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.add_contact_to_list(
- list_id=1000000,
- request=AddContactToListRequestBodyEmails(
- emails=[
- "jeff32@example.com",
- "jim56@example.com"
- ],
- ),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**list_id:** `int` β Id of the list
-
-
-
-
-
--
-
-**request:** `AddContactToListRequestBody`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.remove_contact_from_list(...) -> PostContactInfo
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.contacts import RemoveContactFromListRequestBodyEmails
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.remove_contact_from_list(
- list_id=1000000,
- request=RemoveContactFromListRequestBodyEmails(),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**list_id:** `int` β Id of the list
-
-
-
-
-
--
-
-**request:** `RemoveContactFromListRequestBody`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_segments(...) -> GetSegmentsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_segments()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetSegmentsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_contact_info(...) -> GetContactInfoResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Follow this format when passing a "SMS" phone number as an attribute.
-Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx
-There are 2 ways to get a contact
Option 1- https://api.brevo.com/v3/contacts/{identifier}
Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={}
Option 1 only works if identifierType is email_id (for EMAIL), phone_id (for SMS) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL, SMS and ID of the contact.
Option 2 works for all identifierType, use email_id for EMAIL attribute, phone_id for SMS attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute
Along with the contact details, this endpoint will show the statistics of contact for the recent 90 days by default. To fetch the earlier statistics, please use Get contact campaign stats ``https://developers.brevo.com/reference/contacts-7#getcontactstats`` endpoint with the appropriate date ranges.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_contact_info(
- identifier="identifier",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**identifier:** `GetContactInfoRequestIdentifier` β Email (urlencoded) OR ID of the contact OR its SMS attribute value OR EXT_ID attribute (urlencoded)
-
-
-
-
-
--
-
-**identifier_type:** `typing.Optional[GetContactInfoRequestIdentifierType]` β email_id for Email, phone_id for SMS attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.update_contact(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Follow this format when passing a "SMS" phone number as an attribute.
-Accepted Number Formats 91xxxxxxxxxx +91xxxxxxxxxx 0091xxxxxxxxxx
-There are 2 ways to update a contact
Option 1- https://api.brevo.com/v3/contacts/{identifier}
Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={}
Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact.
Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE attribute
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.update_contact(
- identifier="identifier",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**identifier:** `UpdateContactRequestIdentifier` β Email (urlencoded) OR ID of the contact OR EXT_ID attribute (urlencoded) OR its SMS attribute value OR its WHATSAPP attribute value OR its LANDLINE attribute value
-
-
-
-
-
--
-
-**identifier_type:** `typing.Optional[UpdateContactRequestIdentifierType]` β email_id for Email, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE attribute
-
-
-
-
-
--
-
-**attributes:** `typing.Optional[typing.Dict[str, UpdateContactRequestAttributesValue]]` β Pass the set of attributes to be updated. **These attributes must be present in your account**. To update existing email address of a contact with the new one please pass EMAIL in attributes. For example, **{ "EMAIL":"newemail@domain.com", "FNAME":"Ellie", "LNAME":"Roger", "COUNTRIES":["India","China"]}**. The attribute's parameter should be passed in capital letter while updating a contact. Values that don't match the attribute type (e.g. text or string in a date attribute) will be ignored .Keep in mind transactional attributes can be updated the same way as normal attributes. Mobile Number in **SMS** field should be passed with proper country code. For example: **{"SMS":"+91xxxxxxxxxx"} or {"SMS":"0091xxxxxxxxxx"}**
-
-
-
-
-
--
-
-**email_blacklisted:** `typing.Optional[bool]` β Set/unset this field to blacklist/allow the contact for emails (emailBlacklisted = true)
-
-
-
-
-
--
-
-**ext_id:** `typing.Optional[str]` β Pass your own Id to update ext_id of a contact.
-
-
-
-
-
--
-
-**list_ids:** `typing.Optional[typing.List[int]]` β Ids of the lists to add the contact to
-
-
-
-
-
--
-
-**sms_blacklisted:** `typing.Optional[bool]` β Set/unset this field to blacklist/allow the contact for SMS (smsBlacklisted = true)
-
-
-
-
-
--
-
-**smtp_blacklist_sender:** `typing.Optional[typing.List[str]]` β transactional email forbidden sender for contact. Use only for email Contact
-
-
-
-
-
--
-
-**unlink_list_ids:** `typing.Optional[typing.List[int]]` β Ids of the lists to remove the contact from
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.delete_contact(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-There are 2 ways to delete a contact
Option 1- https://api.brevo.com/v3/contacts/{identifier}
Option 2- https://api.brevo.com/v3/contacts/{identifier}?identifierType={}
Option 1 only works if identifierType is email_id (for EMAIL) or contact_id (for ID of the contact),where you can directly pass the value of EMAIL and ID of the contact.
Option 2 works for all identifierType, use email_id for EMAIL attribute, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.delete_contact(
- identifier="identifier",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**identifier:** `DeleteContactRequestIdentifier` β Email (urlencoded) OR ID of the contact OR EXT_ID attribute (urlencoded)
-
-
-
-
-
--
-
-**identifier_type:** `typing.Optional[DeleteContactRequestIdentifierType]` β email_id for Email, contact_id for ID of the contact, ext_id for EXT_ID attribute, phone_id for SMS attribute, whatsapp_id for WHATSAPP attribute, landline_number_id for LANDLINE_NUMBER attribute
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.contacts.get_contact_stats(...) -> GetContactStatsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.contacts.get_contact_stats(
- identifier="identifier",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**identifier:** `GetContactStatsRequestIdentifier` β Email (urlencoded) OR ID of the contact
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be lower than equal to endDate
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date (YYYY-MM-DD) of the statistic events specific to campaigns. Must be greater than equal to startDate. Maximum difference between startDate and endDate should not be greater than 90 days
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Conversations
-client.conversations.sets_agents_status_to_online_for23minutes(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-We recommend pinging this endpoint every minute for as long as the agent has to be considered online.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.sets_agents_status_to_online_for23minutes(
- agent_id="d9nKoegKSjmCtyK78",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**agent_email:** `typing.Optional[typing.Any]` β agent email. When sending online pings from a standalone system, itβs hard to maintain a 1-to-1 relationship between the users of both systems. In this case, an agent can be specified by their email address. If thereβs no agent with the specified email address in your Brevo organization, a dummy agent will be created automatically.
-
-
-
-
-
--
-
-**agent_id:** `typing.Optional[typing.Any]` β agent ID. It can be found on agentβs page or received from a webhook. Alternatively, you can use `agentEmail` + `agentName` + `receivedFrom` instead (all 3 fields required).
-
-
-
-
-
--
-
-**agent_name:** `typing.Optional[typing.Any]` β agent name
-
-
-
-
-
--
-
-**received_from:** `typing.Optional[typing.Any]` β mark your messages to distinguish messages created by you from the others.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.send_a_message_as_an_agent(...) -> ConversationsMessage
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.send_a_message_as_an_agent(
- agent_id="d9nKoegKSjmCtyK78",
- text="Hello! How can I help you?",
- visitor_id="kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**text:** `typing.Any`
-
-
-
-
-
--
-
-**visitor_id:** `typing.Any`
-
-
-
-
-
--
-
-**agent_email:** `typing.Optional[typing.Any]` β agent email. When sending messages from a standalone system, itβs hard to maintain a 1-to-1 relationship between the users of both systems. In this case, an agent can be specified by their email address.
-
-
-
-
-
--
-
-**agent_id:** `typing.Optional[typing.Any]` β agent ID. It can be found on agentβs page or received from a webhook. Alternatively, you can use `agentEmail` + `agentName` + `receivedFrom` instead (all 3 fields required).
-
-
-
-
-
--
-
-**agent_name:** `typing.Optional[typing.Any]` β agent name
-
-
-
-
-
--
-
-**received_from:** `typing.Optional[typing.Any]` β mark your messages to distinguish messages created by you from the others.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.get_a_message(...) -> ConversationsMessage
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.get_a_message(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β ID of the message
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.update_a_message_sent_by_an_agent(...) -> ConversationsMessage
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Only agentsβ messages can be edited.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.update_a_message_sent_by_an_agent(
- id="id",
- text="Good morning! How can I help you?",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β ID of the message
-
-
-
-
-
--
-
-**text:** `str` β edited message text
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.delete_a_message_sent_by_an_agent(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Only agentsβ messages can be deleted.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.delete_a_message_sent_by_an_agent(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β ID of the message
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.send_an_automated_message_to_a_visitor(...) -> ConversationsMessage
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Example of automated messages: order status, announce new features in your web app, etc.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.send_an_automated_message_to_a_visitor(
- group_id="PjRBMhWGen6aRHjif",
- text="Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88",
- visitor_id="kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**text:** `typing.Any`
-
-
-
-
-
--
-
-**visitor_id:** `typing.Any`
-
-
-
-
-
--
-
-**agent_id:** `typing.Optional[typing.Any]` β agent ID. It can be found on agentβs page or received from a webhook.
-
-
-
-
-
--
-
-**group_id:** `typing.Optional[typing.Any]` β group ID. It can be found on groupβs page.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.get_an_automated_message(...) -> ConversationsMessage
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.get_an_automated_message(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β ID of the message sent previously
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.update_an_automated_message(...) -> ConversationsMessage
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.update_an_automated_message(
- id="id",
- text="Your order has shipped! Hereβs your tracking number: 9114 5847 4668 7775 9233 54",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β ID of the message
-
-
-
-
-
--
-
-**text:** `str` β edited message text
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.delete_an_automated_message(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.delete_an_automated_message(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β ID of the message
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.conversations.set_visitor_group_assignment(...) -> PutConversationsVisitorGroupResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Assigns a visitor to a specific agent group or removes them from their current group.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.conversations.set_visitor_group_assignment(
- group_id="PjRBMhWGen6aRHjif",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**group_id:** `typing.Any`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Ecommerce
-client.ecommerce.get_categories(...) -> GetCategoriesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_categories()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetCategoriesRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β Filter by category ids
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Filter by category name
-
-
-
-
-
--
-
-**modified_since:** `typing.Optional[str]` β Filter (urlencoded) the categories modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**created_since:** `typing.Optional[str]` β Filter (urlencoded) the categories created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**is_deleted:** `typing.Optional[str]` β Filter categories by their deletion status. If `false` is passed, only categories that are not deleted will be returned.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.create_update_category(...) -> CreateUpdateCategoryResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.create_update_category(
- id="CAT123",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Unique Category ID as saved in the shop
-
-
-
-
-
--
-
-**deleted_at:** `typing.Optional[str]` β UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the category deleted from the shop's database
-
-
-
-
-
--
-
-**is_deleted:** `typing.Optional[bool]` β category deleted from the shop's database
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β **Mandatory in case of creation**. Name of the Category, as displayed in the shop
-
-
-
-
-
--
-
-**update_enabled:** `typing.Optional[bool]` β Facilitate to update the existing category in the same request (updateEnabled = true)
-
-
-
-
-
--
-
-**url:** `typing.Optional[str]` β URL to the category
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.create_update_batch_category(...) -> CreateUpdateBatchCategoryResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.ecommerce import CreateUpdateBatchCategoryRequestCategoriesItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.create_update_batch_category(
- categories=[
- CreateUpdateBatchCategoryRequestCategoriesItem(
- id="CAT123",
- )
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**categories:** `typing.List[CreateUpdateBatchCategoryRequestCategoriesItem]` β array of categories objects
-
-
-
-
-
--
-
-**update_enabled:** `typing.Optional[bool]` β Facilitate to update the existing categories in the same request (updateEnabled = true)
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_category_info(...) -> GetCategoryDetails
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_category_info(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Category ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.activate_the_e_commerce_app()
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Getting access to Brevo eCommerce.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.activate_the_e_commerce_app()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows(...) -> GetEcommerceAttributionMetricsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-import datetime
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows(
- period_from=datetime.datetime.fromisoformat("2022-01-02T00:00:00+00:00"),
- period_to=datetime.datetime.fromisoformat("2022-01-03T00:00:00+00:00"),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**period_from:** `typing.Optional[datetime.datetime]` β When getting metrics for a specific period, define the starting datetime in RFC3339 format
-
-
-
-
-
--
-
-**period_to:** `typing.Optional[datetime.datetime]` β When getting metrics for a specific period, define the end datetime in RFC3339 format
-
-
-
-
-
--
-
-**email_campaign_id_array:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β The email campaign ID(s) to get metrics for
-
-
-
-
-
--
-
-**sms_campaign_id_array:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β The SMS campaign ID(s) to get metrics for
-
-
-
-
-
--
-
-**automation_workflow_email_id_array:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β The automation workflow ID(s) to get email attribution metrics for
-
-
-
-
-
--
-
-**automation_workflow_sms_id_array:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β The automation workflow ID(s) to get SMS attribution metrics for
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workflow(...) -> GetEcommerceAttributionMetricsConversionSourceConversionSourceIdResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workflow(
- conversion_source="email_campaign",
- conversion_source_id="sale",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**conversion_source:** `GetEcommerceAttributionMetricsConversionSourceConversionSourceIdRequestConversionSource` β The Brevo campaign type or workflow type for which data will be retrieved
-
-
-
-
-
--
-
-**conversion_source_id:** `str` β The Brevo campaign or automation workflow id for which data will be retrieved
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow(...) -> GetEcommerceAttributionProductsConversionSourceConversionSourceIdResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow(
- conversion_source="email_campaign",
- conversion_source_id="sale",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**conversion_source:** `GetEcommerceAttributionProductsConversionSourceConversionSourceIdRequestConversionSource` β The Brevo campaign or automation workflow type for which data will be retrieved
-
-
-
-
-
--
-
-**conversion_source_id:** `str` β The Brevo campaign or automation workflow id for which data will be retrieved
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_the_iso4217compliant_display_currency_code_for_your_brevo_account() -> GetEcommerceConfigDisplayCurrencyResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_the_iso4217compliant_display_currency_code_for_your_brevo_account()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.set_config_display_currency(...) -> SetConfigDisplayCurrencyResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.set_config_display_currency(
- code="EUR",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**code:** `str` β ISO 4217 compliant display currency code
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_orders(...) -> typing.Any
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Get all the orders
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_orders()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetOrdersRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**modified_since:** `typing.Optional[str]` β Filter (urlencoded) the orders modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**created_since:** `typing.Optional[str]` β Filter (urlencoded) the orders created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.create_order(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Manages the transactional status of the order
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo, OrderProductsItem
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.create_order(
- amount=308.42,
- created_at="2021-07-29T20:59:23.383Z",
- id="14",
- products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
- )
- ],
- status="completed",
- updated_at="2021-07-30T10:59:23.383Z",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `Order`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.create_batch_order(...) -> CreateBatchOrderResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Create multiple orders at one time instead of one order at a time
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo, Order, OrderProductsItem
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.create_batch_order(
- orders=[
- Order(
- amount=308.42,
- created_at="2021-07-29T20:59:23.383Z",
- id="14",
- products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
- )
- ],
- status="completed",
- updated_at="2021-07-30T10:59:23.383Z",
- )
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**orders:** `typing.List[Order]` β array of order objects
-
-
-
-
-
--
-
-**historical:** `typing.Optional[bool]` β Defines wether you want your orders to be considered as live data or as historical data (import of past data, synchronising data). True: orders will not trigger any automation workflows. False: orders will trigger workflows as usual.
-
-
-
-
-
--
-
-**notify_url:** `typing.Optional[str]` β Notify Url provided by client_dev to get the status of batch request
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_products(...) -> GetProductsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_products()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetProductsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**ids:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β Filter by product ids
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Filter by product name, minimum 3 characters should be present for search.
-
-
-
-
-
--
-
-**price_lte:** `typing.Optional[float]` β Price filter for products less than and equals to particular amount
-
-
-
-
-
--
-
-**price_gte:** `typing.Optional[float]` β Price filter for products greater than and equals to particular amount
-
-
-
-
-
--
-
-**price_lt:** `typing.Optional[float]` β Price filter for products less than particular amount
-
-
-
-
-
--
-
-**price_gt:** `typing.Optional[float]` β Price filter for products greater than particular amount
-
-
-
-
-
--
-
-**price_eq:** `typing.Optional[float]` β Price filter for products equals to particular amount
-
-
-
-
-
--
-
-**price_ne:** `typing.Optional[float]` β Price filter for products not equals to particular amount
-
-
-
-
-
--
-
-**categories:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β Filter by categories ids
-
-
-
-
-
--
-
-**modified_since:** `typing.Optional[str]` β Filter (urlencoded) the orders modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**created_since:** `typing.Optional[str]` β Filter (urlencoded) the orders created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**is_deleted:** `typing.Optional[str]` β Filter products by their deletion status. If `false` is passed, only products that are not deleted will be returned.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.create_update_product(...) -> CreateUpdateProductResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.create_update_product(
- id="P11",
- name="Iphone 11",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Product ID for which you requested the details
-
-
-
-
-
--
-
-**name:** `str` β Mandatory in case of creation**. Name of the product for which you requested the details
-
-
-
-
-
--
-
-**categories:** `typing.Optional[typing.List[str]]` β Category ID-s of the product
-
-
-
-
-
--
-
-**deleted_at:** `typing.Optional[str]` β UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of the product deleted from the shop's database
-
-
-
-
-
--
-
-**image_url:** `typing.Optional[str]` β Absolute URL to the cover image of the product
-
-
-
-
-
--
-
-**is_deleted:** `typing.Optional[bool]` β product deleted from the shop's database
-
-
-
-
-
--
-
-**meta_info:** `typing.Optional[typing.Dict[str, CreateUpdateProductRequestMetaInfoValue]]` β Meta data of product such as description, vendor, producer, stock level. The size of cumulative metaInfo shall not exceed **1000 KB**. Maximum length of metaInfo object can be 20.
-
-
-
-
-
--
-
-**parent_id:** `typing.Optional[str]` β Parent product id of the product
-
-
-
-
-
--
-
-**price:** `typing.Optional[float]` β Price of the product
-
-
-
-
-
--
-
-**sku:** `typing.Optional[str]` β Product identifier from the shop
-
-
-
-
-
--
-
-**stock:** `typing.Optional[float]` β Current stock value of the product from the shop's database
-
-
-
-
-
--
-
-**update_enabled:** `typing.Optional[bool]` β Facilitate to update the existing category in the same request (updateEnabled = true)
-
-
-
-
-
--
-
-**url:** `typing.Optional[str]` β URL to the product
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.create_update_batch_products(...) -> CreateUpdateBatchProductsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.ecommerce import CreateUpdateBatchProductsRequestProductsItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.create_update_batch_products(
- products=[
- CreateUpdateBatchProductsRequestProductsItem(
- id="P11",
- name="Iphone 11",
- )
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**products:** `typing.List[CreateUpdateBatchProductsRequestProductsItem]` β array of products objects
-
-
-
-
-
--
-
-**update_enabled:** `typing.Optional[bool]` β Facilitate to update the existing categories in the same request (updateEnabled = true)
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.get_product_info(...) -> GetProductDetails
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.get_product_info(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Product ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.ecommerce.create_product_alert(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.ecommerce.create_product_alert(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Product ID
-
-
-
-
-
--
-
-**type:** `typing.Literal` β Alert type
-
-
-
-
-
--
-
-**contact_identifiers:** `typing.Optional[CreateProductAlertRequestContactIdentifiers]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Coupons
-client.coupons.get_coupon_collections(...) -> GetCouponCollection
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.coupons.get_coupon_collections()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document on the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetCouponCollectionsRequestSort]` β Sort the results by creation time in ascending/descending order
-
-
-
-
-
--
-
-**sort_by:** `typing.Optional[GetCouponCollectionsRequestSortBy]` β The field used to sort coupon collections
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.coupons.create_coupon_collection(...) -> CreateCouponCollectionResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.coupons.create_coupon_collection(
- default_coupon="Winter",
- name="10%OFF",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**default_coupon:** `str` β Default coupons collection name
-
-
-
-
-
--
-
-**name:** `str` β Name of the coupons collection
-
-
-
-
-
--
-
-**expiration_date:** `typing.Optional[datetime.datetime]` β Specify an expiration date for the coupon collection in RFC3339 format. Use null to remove the expiration date.
-
-
-
-
-
--
-
-**remaining_coupons_alert:** `typing.Optional[int]` β Send a notification alert (email) when the remaining coupons count is equal or fall bellow this number. Use null to disable alerts.
-
-
-
-
-
--
-
-**remaining_days_alert:** `typing.Optional[int]` β Send a notification alert (email) when the remaining days until the expiration date are equal or fall bellow this number. Use null to disable alerts.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.coupons.get_coupon_collection(...) -> GetCouponCollection
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.coupons.get_coupon_collection(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Id of the collection to return
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.coupons.update_coupon_collection(...) -> UpdateCouponCollectionResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.coupons.update_coupon_collection(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Id of the collection to update
-
-
-
-
-
--
-
-**default_coupon:** `typing.Optional[str]` β A default coupon to be used in case there are no coupons left
-
-
-
-
-
--
-
-**expiration_date:** `typing.Optional[datetime.datetime]` β Specify an expiration date for the coupon collection in RFC3339 format. Use null to remove the expiration date.
-
-
-
-
-
--
-
-**remaining_coupons_alert:** `typing.Optional[int]` β Send a notification alert (email) when the remaining coupons count is equal or fall bellow this number. Use null to disable alerts.
-
-
-
-
-
--
-
-**remaining_days_alert:** `typing.Optional[int]` β Send a notification alert (email) when the remaining days until the expiration date are equal or fall bellow this number. Use null to disable alerts.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.coupons.create_coupons(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.coupons.create_coupons(
- collection_id="23befbae-1505-47a8-bd27-e30ef739f32c",
- coupons=[
- "Uf12AF"
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**collection_id:** `str` β The id of the coupon collection for which the coupons will be created
-
-
-
-
-
--
-
-**coupons:** `typing.List[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Payments
-client.payments.create_payment_request(...) -> CreatePaymentRequestResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo, Cart
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.payments.create_payment_request(
- cart=Cart(
- currency="EUR",
- specific_amount=1200,
- ),
- contact_id=43,
- reference="Invoice #INV0001",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**cart:** `Cart`
-
-
-
-
-
--
-
-**contact_id:** `int` β Brevo ID of the contact requested to pay.
-
-
-
-
-
--
-
-**reference:** `str` β Reference of the payment request, it will appear on the payment page.
-
-
-
-
-
--
-
-**configuration:** `typing.Optional[Configuration]`
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Description of payment request.
-
-
-
-
-
--
-
-**notification:** `typing.Optional[Notification]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.payments.get_payment_request(...) -> GetPaymentRequestResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.payments.get_payment_request(
- id="050db7b0-9bb7-4c1e-9c68-5a8dace8c1dc",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Id of the payment Request
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.payments.delete_payment_request(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.payments.delete_payment_request(
- id="9ae7d68a-565c-4695-9381-d8fb3e3a14cc",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β ID of the payment request.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Event
-client.event.create_event(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Create an event to track a contact's interaction.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.event import CreateEventRequestIdentifiers
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.event.create_event(
- event_name="video_played",
- identifiers=CreateEventRequestIdentifiers(),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**event_name:** `str` β The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters, alphanumerical characters and - _ only.
-
-
-
-
-
--
-
-**identifiers:** `CreateEventRequestIdentifiers` β Identifies the contact associated with the event. At least one identifier is required.
-
-
-
-
-
--
-
-**contact_properties:** `typing.Optional[typing.Dict[str, CreateEventRequestContactPropertiesValue]]` β Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. For example: **"FIRSTNAME": "Jane" , "AGE": 37**
-
-
-
-
-
--
-
-**event_date:** `typing.Optional[str]` β Timestamp of when the event occurred (e.g. "2024-01-24T17:39:57+01:00"). If no value is passed, the timestamp of the event creation is used.
-
-
-
-
-
--
-
-**event_properties:** `typing.Optional[typing.Dict[str, CreateEventRequestEventPropertiesValue]]` β Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field type are supported: string, number, boolean (true/false), date (Timestamp e.g. "2024-01-24T17:39:57+01:00"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50Kb.
-
-
-
-
-
--
-
-**object:** `typing.Optional[CreateEventRequestObject]` β Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.event.create_batch_events(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Create multiple events to track contacts' interactions in a single request.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.event import CreateBatchEventsRequestItem, CreateBatchEventsRequestItemIdentifiers
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.event.create_batch_events(
- request=[
- CreateBatchEventsRequestItem(
- event_name="order_created",
- identifiers=CreateBatchEventsRequestItemIdentifiers(),
- )
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `typing.List[CreateBatchEventsRequestItem]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## InboundParsing
-client.inbound_parsing.get_inbound_email_events(...) -> GetInboundEmailEventsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will show the list of all the events for the received emails.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.inbound_parsing.get_inbound_email_events()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**sender:** `typing.Optional[str]` β Email address of the sender.
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β Mandatory if endDate is used. Starting date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.SSSZ) from which you want to fetch the list. Maximum time period that can be selected is one month.
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β Mandatory if startDate is used. Ending date (YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.SSSZ) till which you want to fetch the list. Maximum time period that can be selected is one month.
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document on the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetInboundEmailEventsRequestSort]` β Sort the results in the ascending/descending order of record creation
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.inbound_parsing.get_inbound_email_events_by_uuid(...) -> GetInboundEmailEventsByUuidResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will show the list of all events history for one particular received email.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.inbound_parsing.get_inbound_email_events_by_uuid(
- uuid_="uuid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**uuid:** `str` β UUID to fetch events specific to received email
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.inbound_parsing.get_inbound_email_attachment(...) -> typing.Iterator[bytes]
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will retrieve inbound attachment with download token.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.inbound_parsing.get_inbound_email_attachment(
- download_token="downloadToken",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**download_token:** `str` β Token to fetch a particular attachment
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Balance
-client.balance.get_active_balances_api(...) -> BalanceLimit
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns Active Balances
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.get_active_balances_api(
- pid="pid",
- contact_id=1,
- balance_definition_id="balance_definition_id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**contact_id:** `int` β Contact ID
-
-
-
-
-
--
-
-**balance_definition_id:** `str` β Balance Definition ID
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Limit
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Offset
-
-
-
-
-
--
-
-**sort_field:** `typing.Optional[str]` β Sort Field
-
-
-
-
-
--
-
-**sort:** `typing.Optional[str]` β Sort Order
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.get_balance_definition_list(...) -> GetBalanceDefinitionListResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns balance definition page
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.get_balance_definition_list(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Limit the number of records returned
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Offset to paginate records
-
-
-
-
-
--
-
-**sort_field:** `typing.Optional[GetBalanceDefinitionListRequestSortField]` β Field to sort by
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetBalanceDefinitionListRequestSort]` β Sort direction
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetBalanceDefinitionListRequestVersion]` β Version
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.create_balance_definition(...) -> BalanceDefinition
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates balance definition and returns information
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.create_balance_definition(
- pid="pid",
- name="name",
- unit="POINTS",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**name:** `str` β Name of the balance definition.
-
-
-
-
-
--
-
-**unit:** `PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequestUnit` β Unit of balance measurement.
-
-
-
-
-
--
-
-**balance_availability_duration_modifier:** `typing.Optional[PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequestBalanceAvailabilityDurationModifier]` β Defines when the balance expires within the selected duration.
-
-
-
-
-
--
-
-**balance_availability_duration_unit:** `typing.Optional[PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequestBalanceAvailabilityDurationUnit]` β Unit of time for balance validity.
-
-
-
-
-
--
-
-**balance_availability_duration_value:** `typing.Optional[int]` β Number of time units before the balance expires.
-
-
-
-
-
--
-
-**balance_expiration_date:** `typing.Optional[datetime.date]` β Fixed expiration date (`dd/mm` format) as an alternative to duration-based expiry.
-
-
-
-
-
--
-
-**balance_option_amount_overtaking_strategy:** `typing.Optional[PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequestBalanceOptionAmountOvertakingStrategy]` β Defines whether partial credit is allowed when reaching max balance.
-
-
-
-
-
--
-
-**balance_option_credit_rounding:** `typing.Optional[PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequestBalanceOptionCreditRounding]` β Defines rounding strategy for credit transactions.
-
-
-
-
-
--
-
-**balance_option_debit_rounding:** `typing.Optional[PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequestBalanceOptionDebitRounding]` β Defines rounding strategy for debit transactions.
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Short description of the balance definition.
-
-
-
-
-
--
-
-**image_ref:** `typing.Optional[str]` β URL of an optional image reference.
-
-
-
-
-
--
-
-**max_amount:** `typing.Optional[float]` β Maximum allowable balance amount.
-
-
-
-
-
--
-
-**max_credit_amount_limit:** `typing.Optional[float]` β Maximum credit allowed per operation.
-
-
-
-
-
--
-
-**max_debit_amount_limit:** `typing.Optional[float]` β Maximum debit allowed per operation.
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Additional metadata for the balance definition.
-
-
-
-
-
--
-
-**min_amount:** `typing.Optional[float]` β Minimum allowable balance amount.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.get_balance_definition(...) -> BalanceDefinition
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns balance definition
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.get_balance_definition(
- pid="pid",
- bdid="bdid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**bdid:** `str` β Balance Definition Id
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetBalanceDefinitionRequestVersion]` β Version
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.update_balance_definition(...) -> BalanceDefinition
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Updates Balance definition
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.update_balance_definition(
- pid="pid",
- bdid="bdid",
- name="name",
- unit="POINTS",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**bdid:** `str` β Balance Definition Id
-
-
-
-
-
--
-
-**name:** `str` β Name of the balance definition.
-
-
-
-
-
--
-
-**unit:** `UpdateBalanceDefinitionRequestUnit` β Unit of balance measurement.
-
-
-
-
-
--
-
-**balance_availability_duration_modifier:** `typing.Optional[UpdateBalanceDefinitionRequestBalanceAvailabilityDurationModifier]` β Defines when the balance expires within the selected duration.
-
-
-
-
-
--
-
-**balance_availability_duration_unit:** `typing.Optional[UpdateBalanceDefinitionRequestBalanceAvailabilityDurationUnit]` β Unit of time for balance validity.
-
-
-
-
-
--
-
-**balance_availability_duration_value:** `typing.Optional[int]` β Number of time units before the balance expires.
-
-
-
-
-
--
-
-**balance_expiration_date:** `typing.Optional[str]` β Expiration date (`dd/mm` format) or empty if not applicable.
-
-
-
-
-
--
-
-**balance_option_amount_overtaking_strategy:** `typing.Optional[UpdateBalanceDefinitionRequestBalanceOptionAmountOvertakingStrategy]` β Defines whether partial credit is allowed when reaching max balance.
-
-
-
-
-
--
-
-**balance_option_credit_rounding:** `typing.Optional[UpdateBalanceDefinitionRequestBalanceOptionCreditRounding]` β Rounding strategy for credit transactions.
-
-
-
-
-
--
-
-**balance_option_debit_rounding:** `typing.Optional[UpdateBalanceDefinitionRequestBalanceOptionDebitRounding]` β Rounding strategy for debit transactions.
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Short description of the balance definition.
-
-
-
-
-
--
-
-**image_ref:** `typing.Optional[str]` β URL of an optional image reference.
-
-
-
-
-
--
-
-**max_amount:** `typing.Optional[float]` β Maximum allowable balance amount.
-
-
-
-
-
--
-
-**max_credit_amount_limit:** `typing.Optional[float]` β Maximum credit allowed per operation.
-
-
-
-
-
--
-
-**max_debit_amount_limit:** `typing.Optional[float]` β Maximum debit allowed per operation.
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Optional metadata for the balance definition.
-
-
-
-
-
--
-
-**min_amount:** `typing.Optional[float]` β Minimum allowable balance amount.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.delete_balance_definition(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Delete Balance definition
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.delete_balance_definition(
- pid="pid",
- bdid="bdid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**bdid:** `str` β Balance Definition Id
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.create_balance_limit(...) -> BalanceLimit
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates balance limit and sends the created UUID along with the data
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.create_balance_limit(
- pid="pid",
- bdid="bdid",
- constraint_type="transaction",
- duration_unit="day",
- duration_value=1,
- transaction_type="credit",
- value=1,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**bdid:** `str` β Balance Definition Id
-
-
-
-
-
--
-
-**constraint_type:** `CreateBalanceLimitRequestConstraintType` β Defines whether the limit applies to transaction count or amount.
-
-
-
-
-
--
-
-**duration_unit:** `CreateBalanceLimitRequestDurationUnit` β Unit of time for which the limit is applicable.
-
-
-
-
-
--
-
-**duration_value:** `int` β Number of time units for the balance limit.
-
-
-
-
-
--
-
-**transaction_type:** `CreateBalanceLimitRequestTransactionType` β Specifies whether the limit applies to credit or debit transactions.
-
-
-
-
-
--
-
-**value:** `int` β Maximum allowed value for the specified constraint type.
-
-
-
-
-
--
-
-**sliding_schedule:** `typing.Optional[bool]` β Determines if the limit resets on a rolling schedule.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.get_balance_limit(...) -> BalanceLimit
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Fetches balance limits and send the created UUID along with the data
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.get_balance_limit(
- pid="pid",
- bdid="bdid",
- blid="blid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**bdid:** `str` β Balance Definition Id
-
-
-
-
-
--
-
-**blid:** `str` β Balance Limit Id
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetBalanceLimitRequestVersion]` β Version
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.update_balance_limit(...) -> BalanceLimit
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Updates balance limit
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.update_balance_limit(
- pid="pid",
- bdid="bdid",
- blid="blid",
- constraint_type="transaction",
- duration_unit="day",
- duration_value=1,
- transaction_type="credit",
- value=1,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**bdid:** `str` β Balance Definition Id
-
-
-
-
-
--
-
-**blid:** `str` β Balance Limit Id
-
-
-
-
-
--
-
-**constraint_type:** `UpdateBalanceLimitRequestConstraintType` β Defines whether the limit applies to transaction count or amount.
-
-
-
-
-
--
-
-**duration_unit:** `UpdateBalanceLimitRequestDurationUnit` β Unit of time for which the limit is applicable.
-
-
-
-
-
--
-
-**duration_value:** `int` β Number of time units for the balance limit.
-
-
-
-
-
--
-
-**transaction_type:** `UpdateBalanceLimitRequestTransactionType` β Specifies whether the limit applies to credit or debit transactions.
-
-
-
-
-
--
-
-**value:** `int` β Maximum allowed value for the specified constraint type.
-
-
-
-
-
--
-
-**sliding_schedule:** `typing.Optional[bool]` β Determines if the limit resets on a rolling schedule.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.delete_balance_limit(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Delete balance limit
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.delete_balance_limit(
- pid="pid",
- bdid="bdid",
- blid="blid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**bdid:** `str` β Balance Definition Id
-
-
-
-
-
--
-
-**blid:** `str` β Balance Limit Id
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.get_contact_balances(...) -> GetContactBalancesResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns balance list
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.get_contact_balances(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.create_balance_order(...) -> CreateBalanceOrderResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns created order
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.create_balance_order(
- pid="pid",
- amount=1.1,
- balance_definition_id="balanceDefinitionId",
- contact_id=1,
- due_at="dueAt",
- source="source",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**amount:** `float` β Order amount (must be non-zero).
-
-
-
-
-
--
-
-**balance_definition_id:** `str` β Unique identifier (UUID) of the associated balance definition.
-
-
-
-
-
--
-
-**contact_id:** `int` β Unique identifier of the contact placing the order (must be β₯ 1).
-
-
-
-
-
--
-
-**due_at:** `str` β RFC3339 timestamp specifying when the order is due.
-
-
-
-
-
--
-
-**source:** `str` β Specifies the origin of the order (`engine` or `user`).
-
-
-
-
-
--
-
-**expires_at:** `typing.Optional[str]` β Optional RFC3339 timestamp defining order expiration.
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Optional metadata associated with the order.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.get_subscription_balances(...) -> GetSubscriptionBalancesResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns subscription balances
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.get_subscription_balances(
- pid="pid",
- cid="cid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**cid:** `str` β Contact Id
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.create_subscription_balances(...) -> PostLoyaltyBalanceProgramsPidSubscriptionsCidBalancesResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a balance for a contact
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.create_subscription_balances(
- pid="pid",
- cid="cid",
- balance_definition_id="balanceDefinitionId",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**cid:** `str` β Contact Id
-
-
-
-
-
--
-
-**balance_definition_id:** `str` β Unique identifier (UUID) of the balance definition associated with the new balance.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.get_transaction_history_api(...) -> GetLoyaltyBalanceProgramsPidTransactionHistoryResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns transaction history
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.get_transaction_history_api(
- pid="pid",
- contact_id=1,
- balance_definition_id="balanceDefinitionId",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**contact_id:** `int` β Contact ID
-
-
-
-
-
--
-
-**balance_definition_id:** `str` β Balance Definition ID
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Limit the number of records returned
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Skip a number of records
-
-
-
-
-
--
-
-**sort_field:** `typing.Optional[typing.Literal]` β Field to sort by
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetLoyaltyBalanceProgramsPidTransactionHistoryRequestSort]` β Sort order, either asc or desc
-
-
-
-
-
--
-
-**filters:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β Filters to apply
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.begin_transaction(...) -> Transaction
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates new transaction and returns information
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.begin_transaction(
- pid="pid",
- amount=1.1,
- balance_definition_id="balanceDefinitionId",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**amount:** `float` β Transaction amount (must be provided).
-
-
-
-
-
--
-
-**balance_definition_id:** `str` β Unique identifier (UUID) of the associated balance definition.
-
-
-
-
-
--
-
-**loyalty_subscription_id:** `typing.Optional[str]` β Unique identifier for the loyalty subscription (required unless `contactId` is provided).
-
-
-
-
-
--
-
-**auto_complete:** `typing.Optional[bool]` β Whether the transaction should be automatically completed.
-
-
-
-
-
--
-
-**balance_expiry_in_minutes:** `typing.Optional[int]` β Optional expiry time for the balance in minutes (must be greater than 0 if provided).
-
-
-
-
-
--
-
-**contact_id:** `typing.Optional[int]` β Unique identifier of the contact involved in the transaction (required unless `LoyaltySubscriptionId` is provided).
-
-
-
-
-
--
-
-**event_time:** `typing.Optional[str]` β Optional timestamp specifying when the transaction occurred.
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Optional metadata associated with the transaction.
-
-
-
-
-
--
-
-**ttl:** `typing.Optional[int]` β Optional time-to-live for the transaction (must be greater than 0 if provided).
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.cancel_transaction(...) -> Transaction
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Cancels transaction
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.cancel_transaction(
- pid="pid",
- tid="tid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**tid:** `str` β Transaction Id
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.balance.complete_transaction(...) -> Transaction
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Completes transaction
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.balance.complete_transaction(
- pid="pid",
- tid="tid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program Id
-
-
-
-
-
--
-
-**tid:** `str` β Transaction Id
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Program
-client.program.get_lp_list(...) -> GetLpListResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns list of loyalty programs
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.get_lp_list()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort_field:** `typing.Optional[GetLpListRequestSortField]` β Sort documents by field
-
-
-
-
-
--
-
-**sort:** `typing.Optional[str]` β Sort documents by field
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.create_new_lp(...) -> LoyaltyProgram
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates loyalty program
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.create_new_lp(
- name="name",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**name:** `str` β Required name of the loyalty program (max 128 chars).
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Optional description of the loyalty program (max 256 chars).
-
-
-
-
-
--
-
-**document_id:** `typing.Optional[str]` β Optional unique document ID.
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Optional metadata related to the loyalty program.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.get_loyalty_program_info(...) -> LoyaltyProgram
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns loyalty program
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.get_loyalty_program_info(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.update_loyalty_program(...) -> LoyaltyProgram
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Updates loyalty program
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.update_loyalty_program(
- pid="pid",
- name="name",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**name:** `str` β Loyalty Program name
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Loyalty Program description
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Loyalty Program meta data
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.delete_loyalty_program(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Deletes Loyalty Program
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.delete_loyalty_program(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.partially_update_loyalty_program(...) -> LoyaltyProgram
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Partially updates loyalty program
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.partially_update_loyalty_program(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β Loyalty Program description
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Loyalty Program meta data
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Loyalty Program name
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.get_parameter_subscription_info(...) -> GetParameterSubscriptionInfoResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Get Information of balances, tiers, rewards and subscription members for a subscription
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.get_parameter_subscription_info(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**contact_id:** `typing.Optional[str]` β The contact ID to filter by.
-
-
-
-
-
--
-
-**params:** `typing.Optional[str]` β A list of filter parameters for querying the subscription info.
-
-
-
-
-
--
-
-**loyalty_subscription_id:** `typing.Optional[str]` β The loyalty subscription ID to filter by.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.delete_contact_subscription(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Delete subscription for a contact
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.delete_contact_subscription(
- pid="pid",
- cid=1,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**cid:** `int` β Contact ID.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.publish_loyalty_program(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Publishes loyalty program
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.publish_loyalty_program(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.subscribe_member_to_a_subscription(...) -> SubscribeMemberToASubscriptionResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Add member to a subscription
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.subscribe_member_to_a_subscription(
- pid="pid",
- member_contact_ids=[
- 1
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**member_contact_ids:** `typing.List[int]` β Required, each item must be greater than or equal to 1
-
-
-
-
-
--
-
-**contact_id:** `typing.Optional[int]` β Required if LoyaltySubscriptionId is not provided, must be greater than 0
-
-
-
-
-
--
-
-**loyalty_subscription_id:** `typing.Optional[str]` β Required if ContactId is not provided, max length 64
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.delete_contact_members(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Deletes member from a subscription
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.delete_contact_members(
- pid="pid",
- member_contact_ids="memberContactIds",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**member_contact_ids:** `str` β Comma-separated list of member contact IDs to delete from the subscription.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.program.subscribe_to_loyalty_program(...) -> SubscribeToLoyaltyProgramResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Subscribes to a loyalty program
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.program.subscribe_to_loyalty_program(
- pid="pid",
- contact_id=1,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID. A unique identifier for the loyalty program.
-
-
-
-
-
--
-
-**contact_id:** `int` β Required contact ID; must be greater than 0.
-
-
-
-
-
--
-
-**creation_date:** `typing.Optional[str]` β Optional custom date-time format.
-
-
-
-
-
--
-
-**loyalty_subscription_id:** `typing.Optional[str]` β Optional subscription ID (max length 64).
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Reward
-client.reward.get_code_count(...) -> GetCodeCountResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Get code count
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.get_code_count(
- pid="pid",
- cpid="cpid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**cpid:** `str` β Code Pool ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.get_reward_page_api(...) -> GetLoyaltyOfferProgramsPidOffersResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns a reward page
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.get_reward_page_api(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Page size
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Pagination offset
-
-
-
-
-
--
-
-**state:** `typing.Optional[str]` β State of the reward
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetLoyaltyOfferProgramsPidOffersRequestVersion]` β Version
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.create_reward(...) -> CreateRewardResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a new reward in the loyalty program.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.create_reward(
- pid="pid",
- name="name",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**name:** `str` β Internal name of the reward
-
-
-
-
-
--
-
-**public_description:** `typing.Optional[str]` β Public facing description of the reward
-
-
-
-
-
--
-
-**public_image:** `typing.Optional[str]` β URL of the public image for the reward
-
-
-
-
-
--
-
-**public_name:** `typing.Optional[str]` β Public facing name of the reward
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.create_voucher(...) -> CreateVoucherResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Create a voucher and attribute it to a specific membership.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.create_voucher(
- pid="pid",
- reward_id="rewardId",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**reward_id:** `str` β Reward id
-
-
-
-
-
--
-
-**code:** `typing.Optional[str]` β Code generated to attribute reward to a contact
-
-
-
-
-
--
-
-**contact_id:** `typing.Optional[int]` β Contact to attribute the reward
-
-
-
-
-
--
-
-**expiration_date:** `typing.Optional[str]` β Reward expiration date
-
-
-
-
-
--
-
-**loyalty_subscription_id:** `typing.Optional[str]` β One of contactId or loyaltySubscriptionId is required
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Offer meta information (key/value object)
-
-
-
-
-
--
-
-**value:** `typing.Optional[float]` β Value of the selected reward config
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.redeem_voucher(...) -> Redeem
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a request to redeem a voucher.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.redeem_voucher(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**attributed_reward_id:** `typing.Optional[str]` β Unique identifier for the attributed reward
-
-
-
-
-
--
-
-**code:** `typing.Optional[str]` β Redemption code for the reward
-
-
-
-
-
--
-
-**contact_id:** `typing.Optional[int]` β Unique identifier for the contact
-
-
-
-
-
--
-
-**loyalty_subscription_id:** `typing.Optional[str]` β Identifier for the loyalty subscription
-
-
-
-
-
--
-
-**meta:** `typing.Optional[typing.Dict[str, typing.Any]]` β Additional metadata associated with the redeem request
-
-
-
-
-
--
-
-**order:** `typing.Optional[RedeemVoucherRequestOrder]` β Order details for the redemption
-
-
-
-
-
--
-
-**reward_id:** `typing.Optional[str]` β Unique identifier for the reward
-
-
-
-
-
--
-
-**ttl:** `typing.Optional[int]` β Time to live in seconds for the redemption request
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.complete_redeem_transaction(...) -> Redeem
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Completes voucher redeem request.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.complete_redeem_transaction(
- pid="pid",
- tid="tid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**tid:** `str` β Redeem transaction ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.revoke_vouchers(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Revoke attributed vouchers.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.revoke_vouchers(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**attributed_reward_ids:** `typing.Optional[str]` β Reward Attribution IDs (comma seperated)
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.validate_reward(...) -> ValidateRewardResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Validates a reward.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.validate_reward(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**attributed_reward_id:** `typing.Optional[str]` β Unique identifier for the attributed reward
-
-
-
-
-
--
-
-**code:** `typing.Optional[str]` β Validation code for the reward
-
-
-
-
-
--
-
-**contact_id:** `typing.Optional[int]` β Unique identifier for the contact
-
-
-
-
-
--
-
-**loyalty_subscription_id:** `typing.Optional[str]` β Identifier for the loyalty subscription
-
-
-
-
-
--
-
-**point_of_sell_id:** `typing.Optional[str]` β Identifier for the point of sale
-
-
-
-
-
--
-
-**reward_id:** `typing.Optional[str]` β Unique identifier for the reward
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.get_reward_information(...) -> GetLoyaltyOfferProgramsPidRewardsRidResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns reward information.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.get_reward_information(
- pid="pid",
- rid="rid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**rid:** `str` β Reward ID
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetLoyaltyOfferProgramsPidRewardsRidRequestVersion]` β Version
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.reward.get_voucher_for_a_contact(...) -> GetLoyaltyOfferProgramsPidVouchersResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Get voucher for a contact
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.reward.get_voucher_for_a_contact(
- pid="pid",
- contact_id=1,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**contact_id:** `int` β Contact ID
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Page size
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Pagination offset
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetLoyaltyOfferProgramsPidVouchersRequestSort]` β Sort order
-
-
-
-
-
--
-
-**sort_field:** `typing.Optional[GetLoyaltyOfferProgramsPidVouchersRequestSortField]` β Sort field
-
-
-
-
-
--
-
-**metadata_key_value:** `typing.Optional[str]` β Metadata value for a Key filter
-
-
-
-
-
--
-
-**reward_id:** `typing.Optional[str]` β Reward ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Tier
-client.tier.add_subscription_to_tier(...) -> AddSubscriptionToTierResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Manually assigns a tier to a specific membership.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.add_subscription_to_tier(
- pid="pid",
- cid="cid",
- tid="tid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**cid:** `str` β Contact ID
-
-
-
-
-
--
-
-**tid:** `str` β Tier ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.get_list_of_tier_groups(...) -> GetListOfTierGroupsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns the list of tier groups defined within the loyalty program.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.get_list_of_tier_groups(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetListOfTierGroupsRequestVersion]` β Select 'active' to retrieve list of all tier groups which are live for clients. Select draft to retrieve list of all non deleted tier groups.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.create_tier_group(...) -> TierGroup
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a new tier group in a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.create_tier_group(
- pid="pid",
- name="name",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**name:** `str` β Name of the tier group
-
-
-
-
-
--
-
-**downgrade_strategy:** `typing.Optional[CreateTierGroupRequestDowngradeStrategy]` β Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary.
-
-
-
-
-
--
-
-**tier_order:** `typing.Optional[typing.List[str]]` β Order of the tiers in the group in ascending order
-
-
-
-
-
--
-
-**upgrade_strategy:** `typing.Optional[CreateTierGroupRequestUpgradeStrategy]` β Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.get_tier_group(...) -> TierGroup
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns tier group information.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.get_tier_group(
- pid="pid",
- gid="gid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**gid:** `str` β Tier group ID
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetTierGroupRequestVersion]` β Select active to retrieve active version of tier group. Select draft to retrieve latest changes in tier group.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.update_tier_group(...) -> TierGroup
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Updates a tier group from a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.update_tier_group(
- pid="pid",
- gid="gid",
- downgrade_strategy="real_time",
- name="name",
- tier_order=[
- "tierOrder"
- ],
- upgrade_strategy="real_time",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**gid:** `str` β Tier group ID
-
-
-
-
-
--
-
-**downgrade_strategy:** `UpdateTierGroupRequestDowngradeStrategy` β Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary.
-
-
-
-
-
--
-
-**name:** `str` β Name of the tier group
-
-
-
-
-
--
-
-**tier_order:** `typing.List[str]` β Order of the tiers in the group in ascending order
-
-
-
-
-
--
-
-**upgrade_strategy:** `UpdateTierGroupRequestUpgradeStrategy` β Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.delete_tier_group(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Deletes a tier group from a loyalty program. *(The changes will take effect with the next publication of the loyalty program)*
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.delete_tier_group(
- pid="pid",
- gid="gid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**gid:** `str` β Tier group ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.create_tier_for_tier_group(...) -> Tier
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Creates a new tier in a loyalty program tier group. *(The changes will take effect with the next publication of the loyalty program)*
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.tier import CreateTierForTierGroupRequestAccessConditionsItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.create_tier_for_tier_group(
- pid="pid",
- gid="gid",
- access_conditions=[
- CreateTierForTierGroupRequestAccessConditionsItem()
- ],
- name="name",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**gid:** `str` β Tier group ID
-
-
-
-
-
--
-
-**access_conditions:** `typing.List[CreateTierForTierGroupRequestAccessConditionsItem]`
-
-
-
-
-
--
-
-**name:** `str` β Name of the tier to be created
-
-
-
-
-
--
-
-**image_ref:** `typing.Optional[str]` β Image of the tier
-
-
-
-
-
--
-
-**tier_rewards:** `typing.Optional[typing.List[CreateTierForTierGroupRequestTierRewardsItem]]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.get_loyalty_program_tier(...) -> GetLoyaltyProgramTierResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Returns the list of tiers defined within the loyalty program.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.get_loyalty_program_tier(
- pid="pid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**version:** `typing.Optional[GetLoyaltyProgramTierRequestVersion]` β Select 'active' to retrieve list of all tiers which are live for clients. Select draft to retrieve list of all non deleted tiers.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.update_tier(...) -> Tier
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Modifies an existing tier for the specified tier group *(The changes will take effect with the next publication of the loyalty program)*
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.tier import UpdateTierRequestAccessConditionsItem, UpdateTierRequestTierRewardsItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.update_tier(
- pid="pid",
- tid="tid",
- access_conditions=[
- UpdateTierRequestAccessConditionsItem()
- ],
- name="name",
- tier_rewards=[
- UpdateTierRequestTierRewardsItem()
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**tid:** `str` β Tier ID
-
-
-
-
-
--
-
-**access_conditions:** `typing.List[UpdateTierRequestAccessConditionsItem]`
-
-
-
-
-
--
-
-**name:** `str` β Name of the tier to be created
-
-
-
-
-
--
-
-**tier_rewards:** `typing.List[UpdateTierRequestTierRewardsItem]`
-
-
-
-
-
--
-
-**image_ref:** `typing.Optional[str]` β Image of the tier
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tier.delete_tier(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Deletes a tier from a loyalty program tier group. *(The changes will take effect with the next publication of the loyalty program)*
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tier.delete_tier(
- pid="pid",
- tid="tid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pid:** `str` β Loyalty Program ID
-
-
-
-
-
--
-
-**tid:** `str` β Tier ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## EmailCampaigns
-client.email_campaigns.get_email_campaigns(...) -> GetEmailCampaignsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-The response payload for this endpoint has changed
-You now need to specify which type of statistics you would like to retrieve. For more information visit [this page](https://developers.brevo.com/changelog/get-all-marketing-campaigns).
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.get_email_campaigns()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**type:** `typing.Optional[GetEmailCampaignsRequestType]` β Filter on the type of the campaigns
-
-
-
-
-
--
-
-**status:** `typing.Optional[GetEmailCampaignsRequestStatus]` β Filter on the status of the campaign
-
-
-
-
-
--
-
-**statistics:** `typing.Optional[GetEmailCampaignsRequestStatistics]` β Filter on type of the statistics required. Example **globalStats** value will only fetch globalStats info of the campaign in returned response.This option only returns data for events occurred in the last 6 months.For older campaigns, itβs advisable to use the **Get Campaign Report** endpoint.
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used**. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent email campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetEmailCampaignsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**exclude_html_content:** `typing.Optional[bool]` β Use this flag to exclude htmlContent from the response body. If set to **true**, htmlContent field will be returned as empty string in the response body
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.create_email_campaign(...) -> CreateEmailCampaignResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.email_campaigns import CreateEmailCampaignRequestSender
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.create_email_campaign(
- name="Newsletter - May 2017",
- sender=CreateEmailCampaignRequestSender(),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**name:** `str` β Name of the campaign
-
-
-
-
-
--
-
-**sender:** `CreateEmailCampaignRequestSender` β Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example: **{"name":"xyz", "email":"example@abc.com"}** **{"name":"xyz", "id":123}**
-
-
-
-
-
--
-
-**ab_testing:** `typing.Optional[bool]` β Status of A/B Test. abTesting = false means it is disabled & abTesting = true means it is enabled. **subjectA, subjectB, splitRule, winnerCriteria & winnerDelay** will be considered when abTesting is set to true. subjectA & subjectB are mandatory together & subject if passed is ignored. **Can be set to true only if sendAtBestTime is false**. You will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B
-
-
-
-
-
--
-
-**attachment_url:** `typing.Optional[str]` β Absolute url of the attachment (no local file). Extension allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps
-
-
-
-
-
--
-
-**email_expiration_date:** `typing.Optional[CreateEmailCampaignRequestEmailExpirationDate]` β To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipientβs inbox, saving storage space and energy. Learn more about setting an email expiration date. For reference , ``https://help.brevo.com/hc/en-us/articles/4413566705298-Create-an-email-campaign``
-
-
-
-
-
--
-
-**footer:** `typing.Optional[str]` β Footer of the email campaign
-
-
-
-
-
--
-
-**header:** `typing.Optional[str]` β Header of the email campaign
-
-
-
-
-
--
-
-**html_content:** `typing.Optional[str]` β Mandatory if htmlUrl and templateId are empty. Body of the message (HTML).
-
-
-
-
-
--
-
-**html_url:** `typing.Optional[str]` β **Mandatory if htmlContent and templateId are empty**. Url to the message (HTML). For example: **https://html.domain.com**
-
-
-
-
-
--
-
-**increase_rate:** `typing.Optional[int]` β **Mandatory if ipWarmupEnable is set to true**. Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%.
-
-
-
-
-
--
-
-**initial_quota:** `typing.Optional[int]` β **Mandatory if ipWarmupEnable is set to true**. Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000.
-
-
-
-
-
--
-
-**inline_image_activation:** `typing.Optional[bool]` β Use true to embedded the images in your email. Final size of the email should be less than **4MB**. Campaigns with embedded images can _not be sent to more than 5000 contacts_
-
-
-
-
-
--
-
-**ip_warmup_enable:** `typing.Optional[bool]` β **Available for dedicated ip clients**. Set this to true if you wish to warm up your ip.
-
-
-
-
-
--
-
-**mirror_active:** `typing.Optional[bool]` β Use true to enable the mirror link
-
-
-
-
-
--
-
-**params:** `typing.Optional[typing.Dict[str, typing.Any]]` β Pass the set of attributes to customize the type classic campaign. For example: **{"FNAME":"Joe", "LNAME":"Doe"}**. Only available if **type** is **classic**. It's considered only if campaign is in _New Template Language format_. The New Template Language is dependent on the values of **subject, htmlContent/htmlUrl, sender.name & toField**
-
-
-
-
-
--
-
-**preview_text:** `typing.Optional[str]` β Preview text or preheader of the email campaign
-
-
-
-
-
--
-
-**recipients:** `typing.Optional[CreateEmailCampaignRequestRecipients]` β Segment ids and List ids to include/exclude from campaign
-
-
-
-
-
--
-
-**reply_to:** `typing.Optional[str]` β Email on which the campaign recipients will be able to reply to
-
-
-
-
-
--
-
-**scheduled_at:** `typing.Optional[str]` β Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result**. If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part). For example: **2017-06-01T12:30:00+02:00**
-
-
-
-
-
--
-
-**send_at_best_time:** `typing.Optional[bool]` β Set this to true if you want to send your campaign at best time.
-
-
-
-
-
--
-
-**split_rule:** `typing.Optional[int]` β Add the size of your test groups. **Mandatory if abTesting = true & 'recipients' is passed**. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else
-
-
-
-
-
--
-
-**subject:** `typing.Optional[str]` β Subject of the campaign. **Mandatory if abTesting is false**. Ignored if abTesting is true.
-
-
-
-
-
--
-
-**subject_a:** `typing.Optional[str]` β Subject A of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value
-
-
-
-
-
--
-
-**subject_b:** `typing.Optional[str]` β Subject B of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Tag of the campaign
-
-
-
-
-
--
-
-**template_id:** `typing.Optional[int]` β **Mandatory if htmlContent and htmlUrl are empty**. Id of the transactional email template with status _active_. Used to copy only its content fetched from htmlContent/htmlUrl to an email campaign for RSS feature.
-
-
-
-
-
--
-
-**to_field:** `typing.Optional[str]` β To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization
-
-
-
-
-
--
-
-**unsubscription_page_id:** `typing.Optional[str]` β Enter an unsubscription page id. The page id is a 24 digit alphanumeric id that can be found in the URL when editing the page. If not entered, then the default unsubscription page will be used.
-
-
-
-
-
--
-
-**update_form_id:** `typing.Optional[str]` β **Mandatory if templateId is used containing the {{ update_profile }} tag**. Enter an update profile form id. The form id is a 24 digit alphanumeric id that can be found in the URL when editing the form. If not entered, then the default update profile form will be used.
-
-
-
-
-
--
-
-**utm_campaign:** `typing.Optional[str]` β Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed
-
-
-
-
-
--
-
-**winner_criteria:** `typing.Optional[CreateEmailCampaignRequestWinnerCriteria]` β Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed
-
-
-
-
-
--
-
-**winner_delay:** `typing.Optional[int]` β Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerDelay` is ignored if passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.upload_image_to_gallery(...) -> UploadImageToGalleryResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.upload_image_to_gallery(
- image_url="https://somedomain.com/image1.jpg",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**image_url:** `str` β The absolute url of the image (**no local file**). Maximum allowed size for image is **2MB**. Allowed extensions for images are: #### jpeg, jpg, png, bmp, gif.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of the image.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.get_email_campaign(...) -> GetEmailCampaignResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.get_email_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**statistics:** `typing.Optional[GetEmailCampaignRequestStatistics]` β Filter on type of the statistics required. Example **globalStats** value will only fetch globalStats info of the campaign in returned response.
-
-
-
-
-
--
-
-**exclude_html_content:** `typing.Optional[bool]` β Use this flag to exclude htmlContent from the response body. If set to **true**, htmlContent field will be returned as empty string in the response body
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.update_email_campaign(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.update_email_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**ab_testing:** `typing.Optional[bool]` β Status of A/B Test. abTesting = false means it is disabled & abTesting = true means it is enabled. **subjectA, subjectB, splitRule, winnerCriteria & winnerDelay** will be considered when abTesting is set to true. subjectA & subjectB are mandatory together & subject if passed is ignored. **Can be set to true only if sendAtBestTime is false**. You will be able to set up two subject lines for your campaign and send them to a random sample of your total recipients. Half of the test group will receive version A, and the other half will receive version B
-
-
-
-
-
--
-
-**attachment_url:** `typing.Optional[str]` β Absolute url of the attachment (no local file). Extension allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps'
-
-
-
-
-
--
-
-**email_expiration_date:** `typing.Optional[UpdateEmailCampaignRequestEmailExpirationDate]` β To reduce your carbon footprint, set an expiration date for your email. If supported, it will be automatically deleted from the recipientβs inbox, saving storage space and energy.
-
-
-
-
-
--
-
-**footer:** `typing.Optional[str]` β Footer of the email campaign
-
-
-
-
-
--
-
-**header:** `typing.Optional[str]` β Header of the email campaign
-
-
-
-
-
--
-
-**html_content:** `typing.Optional[str]` β Body of the message (HTML version). If the campaign is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that campaign. **REQUIRED if htmlUrl is empty**
-
-
-
-
-
--
-
-**html_url:** `typing.Optional[str]` β Url which contents the body of the email message. **REQUIRED if htmlContent is empty**
-
-
-
-
-
--
-
-**increase_rate:** `typing.Optional[int]` β Set a percentage increase rate for warming up your ip. We recommend you set the increase rate to 30% per day. If you want to send the same number of emails every day, set the daily increase value to 0%.
-
-
-
-
-
--
-
-**initial_quota:** `typing.Optional[int]` β Set an initial quota greater than 1 for warming up your ip. We recommend you set a value of 3000.
-
-
-
-
-
--
-
-**inline_image_activation:** `typing.Optional[bool]` β Status of inline image. inlineImageActivation = false means image canβt be embedded, & inlineImageActivation = true means image can be embedded, in the email. You cannot send a campaign of more than **4MB** with images embedded in the email. Campaigns with the images embedded in the email _must be sent to less than 5000 contacts_.
-
-
-
-
-
--
-
-**ip_warmup_enable:** `typing.Optional[bool]` β **Available for dedicated ip clients**. Set this to true if you wish to warm up your ip.
-
-
-
-
-
--
-
-**mirror_active:** `typing.Optional[bool]` β Status of mirror links in campaign. mirrorActive = false means mirror links are deactivated, & mirrorActive = true means mirror links are activated, in the campaign
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of the campaign
-
-
-
-
-
--
-
-**params:** `typing.Optional[typing.Dict[str, typing.Any]]` β Pass the set of attributes to customize the type classic campaign. For example: **{"FNAME":"Joe", "LNAME":"Doe"}**. Only available if **type** is **classic**. It's considered only if campaign is in _New Template Language format_. The New Template Language is dependent on the values of **subject, htmlContent/htmlUrl, sender.name & toField**
-
-
-
-
-
--
-
-**preview_text:** `typing.Optional[str]` β Preview text or preheader of the email campaign
-
-
-
-
-
--
-
-**recipients:** `typing.Optional[UpdateEmailCampaignRequestRecipients]` β Segment ids and List ids to include/exclude from campaign
-
-
-
-
-
--
-
-**recurring:** `typing.Optional[bool]` β **FOR TRIGGER ONLY !** Type of trigger campaign.recurring = false means contact can receive the same Trigger campaign only once, & recurring = true means contact can receive the same Trigger campaign several times
-
-
-
-
-
--
-
-**reply_to:** `typing.Optional[str]` β Email on which campaign recipients will be able to reply to
-
-
-
-
-
--
-
-**scheduled_at:** `typing.Optional[str]` β UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.** If sendAtBestTime is set to true, your campaign will be sent according to the date passed (ignoring the time part).
-
-
-
-
-
--
-
-**send_at_best_time:** `typing.Optional[bool]` β Set this to true if you want to send your campaign at best time. Note:- **if true, warmup ip will be disabled.**
-
-
-
-
-
--
-
-**sender:** `typing.Optional[UpdateEmailCampaignRequestSender]` β Sender details including id or email and name (optional). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example: **{"name":"xyz", "email":"example@abc.com"}** **{"name":"xyz", "id":123}**
-
-
-
-
-
--
-
-**split_rule:** `typing.Optional[int]` β Add the size of your test groups. **Mandatory if abTesting = true & 'recipients' is passed**. We'll send version A and B to a random sample of recipients, and then the winning version to everyone else
-
-
-
-
-
--
-
-**subject:** `typing.Optional[str]` β Subject of the campaign
-
-
-
-
-
--
-
-**subject_a:** `typing.Optional[str]` β Subject A of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value
-
-
-
-
-
--
-
-**subject_b:** `typing.Optional[str]` β Subject B of the campaign. **Mandatory if abTesting = true**. subjectA & subjectB should have unique value
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Tag of the campaign
-
-
-
-
-
--
-
-**to_field:** `typing.Optional[str]` β To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization
-
-
-
-
-
--
-
-**unsubscription_page_id:** `typing.Optional[str]` β Enter an unsubscription page id. The page id is a 24 digit alphanumeric id that can be found in the URL when editing the page.
-
-
-
-
-
--
-
-**update_form_id:** `typing.Optional[str]` β **Mandatory if templateId is used containing the {{ update_profile }} tag**. Enter an update profile form id. The form id is a 24 digit alphanumeric id that can be found in the URL when editing the form.
-
-
-
-
-
--
-
-**utm_campaign:** `typing.Optional[str]` β Customize the utm_campaign value. If this field is empty, the campaign name will be used. Only alphanumeric characters and spaces are allowed
-
-
-
-
-
--
-
-**winner_criteria:** `typing.Optional[UpdateEmailCampaignRequestWinnerCriteria]` β Choose the metrics that will determinate the winning version. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerCriteria` is ignored if passed
-
-
-
-
-
--
-
-**winner_delay:** `typing.Optional[int]` β Choose the duration of the test in hours. Maximum is 7 days, pass 24*7 = 168 hours. The winning version will be sent at the end of the test. **Mandatory if _splitRule_ >= 1 and < 50**. If splitRule = 50, `winnerDelay` is ignored if passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.delete_email_campaign(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.delete_email_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.get_ab_test_campaign_result(...) -> GetAbTestCampaignResultResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Obtain winning version of an A/B test email campaign
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.get_ab_test_campaign_result(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the A/B test campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.email_export_recipients(...) -> EmailExportRecipientsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.email_export_recipients(
- campaign_id=1000000,
- recipients_type="all",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**recipients_type:** `EmailExportRecipientsRequestRecipientsType` β Type of recipients to export for a campaign
-
-
-
-
-
--
-
-**notify_url:** `typing.Optional[str]` β Webhook called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.send_email_campaign_now(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.send_email_campaign_now(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.send_report(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-A PDF will be sent to the specified email addresses
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo, SendReportEmail
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.send_report(
- campaign_id=1000000,
- email=SendReportEmail(
- body="Please find attached the report of our last email campaign.",
- to=[
- "jim.suehan@example.com"
- ],
- ),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**request:** `SendReport`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.send_test_email(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.send_test_email(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**request:** `SendTestEmail`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.get_shared_template_url(...) -> GetSharedTemplateUrlResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Get a unique URL to share & import an email template from one Brevo account to another.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.get_shared_template_url(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign or template
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.email_campaigns.update_campaign_status(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.email_campaigns.update_campaign_status(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**request:** `UpdateCampaignStatus`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## SmsCampaigns
-client.sms_campaigns.get_sms_campaigns(...) -> GetSmsCampaignsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.get_sms_campaigns()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**status:** `typing.Optional[GetSmsCampaignsRequestStatus]` β Status of campaign.
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number limitation for the result returned
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Beginning point in the list to retrieve from.
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetSmsCampaignsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.create_sms_campaign(...) -> CreateSmsCampaignResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.create_sms_campaign(
- content="Get a discount by visiting our NY store and saying : Happy Spring!",
- name="Spring Promo Code",
- sender="MyShop",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**content:** `str` β Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS.
-
-
-
-
-
--
-
-**name:** `str` β Name of the campaign
-
-
-
-
-
--
-
-**sender:** `str` β Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**
-
-
-
-
-
--
-
-**organisation_prefix:** `typing.Optional[str]` β A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**
-
-
-
-
-
--
-
-**recipients:** `typing.Optional[CreateSmsCampaignRequestRecipients]`
-
-
-
-
-
--
-
-**scheduled_at:** `typing.Optional[str]` β UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**unicode_enabled:** `typing.Optional[bool]` β Format of the message. It indicates whether the content should be treated as unicode or not.
-
-
-
-
-
--
-
-**unsubscribe_instruction:** `typing.Optional[str]` β Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.get_sms_campaign(...) -> GetSmsCampaignResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.get_sms_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the SMS campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.update_sms_campaign(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.update_sms_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the SMS campaign
-
-
-
-
-
--
-
-**content:** `typing.Optional[str]` β Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of the campaign
-
-
-
-
-
--
-
-**organisation_prefix:** `typing.Optional[str]` β A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**
-
-
-
-
-
--
-
-**recipients:** `typing.Optional[UpdateSmsCampaignRequestRecipients]`
-
-
-
-
-
--
-
-**scheduled_at:** `typing.Optional[str]` β UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
-
-
-
-
-
--
-
-**sender:** `typing.Optional[str]` β Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**
-
-
-
-
-
--
-
-**unicode_enabled:** `typing.Optional[bool]` β Format of the message. It indicates whether the content should be treated as unicode or not.
-
-
-
-
-
--
-
-**unsubscribe_instruction:** `typing.Optional[str]` β Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.delete_sms_campaign(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.delete_sms_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the SMS campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.request_sms_recipient_export(...) -> RequestSmsRecipientExportResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-It returns the background process ID which on completion calls the notify URL that you have set in the input.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.request_sms_recipient_export(
- campaign_id=1000000,
- recipients_type="all",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the campaign
-
-
-
-
-
--
-
-**recipients_type:** `RequestSmsRecipientExportRequestRecipientsType` β Filter the recipients based on how they interacted with the campaign
-
-
-
-
-
--
-
-**notify_url:** `typing.Optional[str]` β URL that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.send_sms_campaign_now(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.send_sms_campaign_now(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.send_sms_report(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Send report of Sent and Archived campaign, to the specified email addresses, with respective data and a pdf attachment in detail.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo, SendReportEmail
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.send_sms_report(
- campaign_id=1000000,
- email=SendReportEmail(
- body="Please find attached the report of our last email campaign.",
- to=[
- "jim.suehan@example.com"
- ],
- ),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the campaign
-
-
-
-
-
--
-
-**request:** `SendReport`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.send_test_sms(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.send_test_sms(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the SMS campaign
-
-
-
-
-
--
-
-**phone_number:** `typing.Optional[str]` β Mobile number of the recipient with the country code. This number **must belong to one of your contacts in Brevo account and must not be blacklisted**
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.sms_campaigns.update_sms_campaign_status(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_campaigns.update_sms_campaign_status(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the campaign
-
-
-
-
-
--
-
-**request:** `UpdateCampaignStatus`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## WhatsAppCampaigns
-client.whats_app_campaigns.get_whats_app_campaigns(...) -> GetWhatsAppCampaignsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.get_whats_app_campaigns()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used**. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. **Prefer to pass your timezone in date-time format for accurate result**
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. **Prefer to pass your timezone in date-time format for accurate result**
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetWhatsAppCampaignsRequestSort]` β Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.create_whats_app_campaign(...) -> CreateWhatsAppCampaignResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
-[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
-This API requires the List and Segment ids as recipients in Body params.You can use the below Contact endpoints to get the required information.
-[Get all the Lists](https://developers.brevo.com/reference/getlists-1)
-[Get all the Segments](https://developers.brevo.com/reference/getsegments)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.whats_app_campaigns import CreateWhatsAppCampaignRequestRecipients
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.create_whats_app_campaign(
- name="Test Campaign",
- recipients=CreateWhatsAppCampaignRequestRecipients(),
- scheduled_at="2017-06-01T12:30:00+02:00",
- template_id=19,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**name:** `str` β Name of the WhatsApp campaign creation
-
-
-
-
-
--
-
-**recipients:** `CreateWhatsAppCampaignRequestRecipients` β Segment ids and List ids to include/exclude from campaign
-
-
-
-
-
--
-
-**scheduled_at:** `str` β Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00**
-
-
-
-
-
--
-
-**template_id:** `int` β Id of the WhatsApp template in **approved** state
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.get_whats_app_config() -> GetWhatsAppConfigResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
-[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.get_whats_app_config()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.create_whats_app_template(...) -> CreateWhatsAppTemplateResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
-[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.create_whats_app_template(
- body_text="making it look like readable English",
- category="MARKETING",
- language="en",
- name="Test template",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**body_text:** `str` β Body of the template. **Maximum allowed characters are 1024**
-
-
-
-
-
--
-
-**category:** `CreateWhatsAppTemplateRequestCategory` β Category of the template
-
-
-
-
-
--
-
-**language:** `str`
-
-Language of the template. For Example :
-**en** for English
-
-
-
-
-
--
-
-**name:** `str` β Name of the template
-
-
-
-
-
--
-
-**header_text:** `typing.Optional[str]` β Text content of the header in the template. **Maximum allowed characters are 45** **Use this field to add text content in template header and if mediaUrl is empty**
-
-
-
-
-
--
-
-**media_url:** `typing.Optional[str]` β Absolute url of the media file **(no local file)** for the header. **Use this field in you want to add media in Template header and headerText is empty** Allowed extensions for media files are: #### jpeg | png | mp4 | pdf
-
-
-
-
-
--
-
-**source:** `typing.Optional[CreateWhatsAppTemplateRequestSource]` β source of the template
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.get_whats_app_templates(...) -> GetWhatsAppTemplatesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.get_whats_app_templates()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used**. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. **Prefer to pass your timezone in date-time format for accurate result**
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. **Prefer to pass your timezone in date-time format for accurate result**
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetWhatsAppTemplatesRequestSort]` β Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**source:** `typing.Optional[GetWhatsAppTemplatesRequestSource]` β source of the template
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.send_whats_app_template_approval(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
-[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.send_whats_app_template_approval(
- template_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**template_id:** `int` β id of the template
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.get_whats_app_campaign(...) -> GetWhatsAppCampaignResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
-[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
-This API requires the List and Segment ids as recipients in Body params.You can use the below Contact endpoints to get the required information.
-[Get all the Lists](https://developers.brevo.com/reference/getlists-1)
-[Get all the Segments](https://developers.brevo.com/reference/getsegments)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.get_whats_app_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β Id of the campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.update_whats_app_campaign(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
-[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
-This API requires the List and Segment ids as recipients in Body params.You can use the below Contact endpoints to get the required information.
-[Get all the Lists](https://developers.brevo.com/reference/getlists-1)
-[Get all the Segments](https://developers.brevo.com/reference/getsegments)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.update_whats_app_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the campaign
-
-
-
-
-
--
-
-**campaign_name:** `typing.Optional[str]` β Name of the campaign
-
-
-
-
-
--
-
-**campaign_status:** `typing.Optional[UpdateWhatsAppCampaignRequestCampaignStatus]` β Status of the campaign
-
-
-
-
-
--
-
-**recipients:** `typing.Optional[UpdateWhatsAppCampaignRequestRecipients]` β Segment ids and List ids to include/exclude from campaign
-
-
-
-
-
--
-
-**reschedule_for:** `typing.Optional[str]` β Reschedule the sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of campaign. **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00** Use this field to update the scheduledAt of any existing draft or scheduled WhatsApp campaign.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.whats_app_campaigns.delete_whats_app_campaign(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.whats_app_campaigns.delete_whats_app_campaign(
- campaign_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**campaign_id:** `int` β id of the campaign
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Companies
-client.companies.get_all_companies(...) -> GetCompaniesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.get_all_companies()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**filters:** `typing.Optional[str]` β Filter by attrbutes. If you have filter for owner on your side please send it as {"attributes.owner":"6299dcf3874a14eacbc65c46"}
-
-
-
-
-
--
-
-**linked_contacts_ids:** `typing.Optional[int]` β Filter by linked contacts ids
-
-
-
-
-
--
-
-**linked_deals_ids:** `typing.Optional[str]` β Filter by linked Deals ids
-
-
-
-
-
--
-
-**modified_since:** `typing.Optional[str]` β Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
-
-
-
-
-
--
-
-**created_since:** `typing.Optional[str]` β Filter (urlencoded) the contacts created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
-
-
-
-
-
--
-
-**page:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetCompaniesRequestSort]` β Sort the results in the ascending/descending order. Default order is **descending** by creation if `sort` is not passed
-
-
-
-
-
--
-
-**sort_by:** `typing.Optional[str]` β The field used to sort field names.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.create_a_company(...) -> PostCompaniesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.create_a_company(
- name="company",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**name:** `str` β Name of company
-
-
-
-
-
--
-
-**attributes:** `typing.Optional[typing.Dict[str, typing.Any]]` β Attributes for company creation
-
-
-
-
-
--
-
-**country_code:** `typing.Optional[int]` β Country code if phone_number is passed in attributes.
-
-
-
-
-
--
-
-**linked_contacts_ids:** `typing.Optional[typing.List[int]]` β Contact ids to be linked with company
-
-
-
-
-
--
-
-**linked_deals_ids:** `typing.Optional[typing.List[str]]` β Deal ids to be linked with company
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.import_companies_creation_and_updation(...) -> PostCompaniesImportResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Import companies from a CSV file with mapping options.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.import_companies_creation_and_updation(
- file="example_file",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**file:** `typing.Optional[core.File]` β The CSV file to upload.The file should have the first row as the mapping attribute. Some default attribute names are (a) company_id [brevo mongoID to update deals] (b) associated_contact (c) associated_deal (f) any other attribute with internal name
-
-
-
-
-
--
-
-**mapping:** `typing.Optional[typing.Dict[str, typing.Any]]`
-
-The mapping options in JSON format. Here is an example of the JSON structure: ```json {
- "link_entities": true, // Determines whether to link related entities during the import process
- "unlink_entities": false, // Determines whether to unlink related entities during the import process
- "update_existing_records": true, // Determines whether to update based on company ID or treat every row as create
- "unset_empty_attributes": false // Determines whether to unset a specific attribute during update if the values input is blank
-} ```
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.link_and_unlink_company_with_contact_and_deal(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.link_and_unlink_company_with_contact_and_deal(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**link_contact_ids:** `typing.Optional[typing.List[int]]` β Contact ids for contacts to be linked with company
-
-
-
-
-
--
-
-**link_deals_ids:** `typing.Optional[typing.List[str]]` β Deal ids for deals to be linked with company
-
-
-
-
-
--
-
-**unlink_contact_ids:** `typing.Optional[typing.List[int]]` β Contact ids for contacts to be unlinked from company
-
-
-
-
-
--
-
-**unlink_deals_ids:** `typing.Optional[typing.List[str]]` β Deal ids for deals to be unlinked from company
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.get_a_company(...) -> Company
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.get_a_company(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Get Company Details
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.delete_a_company(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.delete_a_company(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Company ID to delete
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.update_a_company(...) -> Company
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.update_a_company(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**attributes:** `typing.Optional[typing.Dict[str, typing.Any]]` β Attributes for company update
-
-
-
-
-
--
-
-**country_code:** `typing.Optional[int]` β Country code if phone_number is passed in attributes.
-
-
-
-
-
--
-
-**linked_contacts_ids:** `typing.Optional[typing.List[int]]` β Warning - Using PATCH on linkedContactIds replaces the list of linked contacts. Omitted IDs will be removed.
-
-
-
-
-
--
-
-**linked_deals_ids:** `typing.Optional[typing.List[str]]` β Warning - Using PATCH on linkedDealsIds replaces the list of linked contacts. Omitted IDs will be removed.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of company
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.create_a_company_deal_attribute(...) -> PostCrmAttributesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.create_a_company_deal_attribute(
- attribute_type="text",
- label="Attribute Label",
- object_type="companies",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**attribute_type:** `PostCrmAttributesRequestAttributeType` β The type of attribute (must be one of the defined enums)
-
-
-
-
-
--
-
-**label:** `str` β The label for the attribute (max 50 characters, cannot be empty)
-
-
-
-
-
--
-
-**object_type:** `PostCrmAttributesRequestObjectType` β The type of object the attribute belongs to (prefilled with `companies`, mandatory)
-
-
-
-
-
--
-
-**description:** `typing.Optional[str]` β A description of the attribute
-
-
-
-
-
--
-
-**options_labels:** `typing.Optional[typing.List[str]]` β Options for multi-choice or single-select attributes
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.delete_an_attribute(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.delete_an_attribute(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Attribute ID
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.update_an_attribute(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.update_an_attribute(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Attribute ID
-
-
-
-
-
--
-
-**label:** `typing.Optional[str]` β Attribute display label
-
-
-
-
-
--
-
-**options_labels:** `typing.Optional[typing.List[PatchCrmAttributesIdRequestOptionsLabelsItem]]` β Updated labels for selectable options
-
-
-
-
-
--
-
-**object_type:** `typing.Optional[PatchCrmAttributesIdRequestObjectType]` β The type of object the attribute belongs to, it cannot be updated after creation
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.companies.get_company_attributes() -> typing.List[GetCrmAttributesCompaniesResponseItem]
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.companies.get_company_attributes()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Deals
-client.deals.get_deal_attributes() -> typing.List[GetCrmAttributesDealsResponseItem]
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.get_deal_attributes()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.get_all_deals(...) -> GetCrmDealsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.get_all_deals()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**filters_attributes_deal_name:** `typing.Optional[str]` β Filter by attributes. If you have a filter for the owner on your end, please send it as filters[attributes.deal_owner] and utilize the account email for the filtering.
-
-
-
-
-
--
-
-**filters_linked_companies_ids:** `typing.Optional[str]` β Filter by linked companies ids
-
-
-
-
-
--
-
-**filters_linked_contacts_ids:** `typing.Optional[str]` β Filter by linked companies ids
-
-
-
-
-
--
-
-**modified_since:** `typing.Optional[str]` β Filter (urlencoded) the contacts modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
-
-
-
-
-
--
-
-**created_since:** `typing.Optional[str]` β Filter (urlencoded) the contacts created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetCrmDealsRequestSort]` β Sort the results in the ascending/descending order. Default order is **descending** by creation if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.create_a_deal(...) -> PostCrmDealsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.create_a_deal(
- name="Deal: Connect with company",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**name:** `str` β Name of deal
-
-
-
-
-
--
-
-**attributes:** `typing.Optional[typing.Dict[str, typing.Any]]` β Attributes for deal creation To assign owner of a Deal you can send attributes.deal_owner and utilize the account email or ID. If you want to create a deal on a specific pipeline and stage you can use the following attributes `pipeline` and `deal_stage`. Pipeline and deal_stage are ids you can fetch using this endpoint `/crm/pipeline/details/{pipelineID}`
-
-
-
-
-
--
-
-**linked_companies_ids:** `typing.Optional[typing.List[str]]` β Company ids to be linked with deal
-
-
-
-
-
--
-
-**linked_contacts_ids:** `typing.Optional[typing.List[int]]` β Contact ids to be linked with deal
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.import_deals_creation_and_updation(...) -> PostCrmDealsImportResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Import deals from a CSV file with mapping options.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.import_deals_creation_and_updation(
- file="example_file",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**file:** `typing.Optional[core.File]` β The CSV file to upload.The file should have the first row as the mapping attribute. Some default attribute names are (a) deal_id [brevo mongoID to update deals] (b) associated_contact (c) associated_company (f) any other attribute with internal name
-
-
-
-
-
--
-
-**mapping:** `typing.Optional[typing.Dict[str, typing.Any]]`
-
-The mapping options in JSON format. Here is an example of the JSON structure: ```json {
- "link_entities": true, // Determines whether to link related entities during the import process
- "unlink_entities": false, // Determines whether to unlink related entities during the import process
- "update_existing_records": true, // Determines whether to update based on company ID or treat every row as create
- "unset_empty_attributes": false // Determines whether to unset a specific attribute during update if the values input is blank
-} ```
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.link_and_unlink_a_deal_with_contacts_and_companies(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.link_and_unlink_a_deal_with_contacts_and_companies(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**link_company_ids:** `typing.Optional[typing.List[str]]` β Company ids to be linked with deal
-
-
-
-
-
--
-
-**link_contact_ids:** `typing.Optional[typing.List[int]]` β Contact ids for contacts to be linked with deal
-
-
-
-
-
--
-
-**unlink_company_ids:** `typing.Optional[typing.List[str]]` β Company ids to be unlinked from deal
-
-
-
-
-
--
-
-**unlink_contact_ids:** `typing.Optional[typing.List[int]]` β Contact ids for contacts to be unlinked from deal
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.get_a_deal(...) -> Deal
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.get_a_deal(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.delete_a_deal(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.delete_a_deal(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.update_a_deal(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.update_a_deal(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**attributes:** `typing.Optional[typing.Dict[str, typing.Any]]` β Attributes for deal update To assign owner of a Deal you can send attributes.deal_owner and utilize the account email or ID. If you wish to update the pipeline of a deal you need to provide the `pipeline` and the `deal_stage` Pipeline and deal_stage are ids you can fetch using this endpoint `/crm/pipeline/details/{pipelineID}`
-
-
-
-
-
--
-
-**linked_companies_ids:** `typing.Optional[typing.List[str]]` β Warning - Using PATCH on linkedCompaniesIds replaces the list of linked contacts. Omitted IDs will be removed.
-
-
-
-
-
--
-
-**linked_contacts_ids:** `typing.Optional[typing.List[int]]` β Warning - Using PATCH on linkedContactIds replaces the list of linked contacts. Omitted IDs will be removed.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of deal
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.get_pipeline_stages() -> Pipeline
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint is deprecated. Prefer /crm/pipeline/details/{pipelineID} instead.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.get_pipeline_stages()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.get_all_pipelines() -> Pipelines
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.get_all_pipelines()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.deals.get_a_pipeline(...) -> Pipelines
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.deals.get_a_pipeline(
- pipeline_id="pipelineID",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**pipeline_id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Files
-client.files.get_all_files(...) -> typing.List[FileData]
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.files.get_all_files()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**entity:** `typing.Optional[GetCrmFilesRequestEntity]` β Filter by file entity type
-
-
-
-
-
--
-
-**entity_ids:** `typing.Optional[str]` β Filter by file entity IDs
-
-
-
-
-
--
-
-**date_from:** `typing.Optional[int]` β dateFrom to date range filter type (timestamp in milliseconds)
-
-
-
-
-
--
-
-**date_to:** `typing.Optional[int]` β dateTo to date range filter type (timestamp in milliseconds)
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetCrmFilesRequestSort]` β Sort the results in the ascending/descending order. Default order is **descending** by creation if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.upload_a_file(...) -> FileData
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.files.upload_a_file(
- file="example_file",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**file:** `core.File` β File data to create a file.
-
-
-
-
-
--
-
-**company_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**contact_id:** `typing.Optional[int]`
-
-
-
-
-
--
-
-**deal_id:** `typing.Optional[str]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.download_a_file(...) -> GetCrmFilesIdResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.files.download_a_file(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β File id to download.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.delete_a_file(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.files.delete_a_file(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β File id to delete.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.get_file_details(...) -> FileData
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.files.get_file_details(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β File id to get file data.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Notes
-client.notes.get_all_notes(...) -> typing.List[Note]
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.notes.get_all_notes()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**entity:** `typing.Optional[GetCrmNotesRequestEntity]` β Filter by note entity type
-
-
-
-
-
--
-
-**entity_ids:** `typing.Optional[str]` β Filter by note entity IDs
-
-
-
-
-
--
-
-**date_from:** `typing.Optional[int]` β dateFrom to date range filter type (timestamp in milliseconds)
-
-
-
-
-
--
-
-**date_to:** `typing.Optional[int]` β dateTo to date range filter type (timestamp in milliseconds)
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetCrmNotesRequestSort]` β Sort the results in the ascending/descending order. Default order is **descending** by creation if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.notes.create_a_note(...) -> PostCrmNotesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.notes.create_a_note(
- text="In communication with client_dev for resolution of queries.",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `NoteData`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.notes.get_a_note(...) -> Note
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.notes.get_a_note(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Note ID to get
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.notes.delete_a_note(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.notes.delete_a_note(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Note ID to delete
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.notes.update_a_note(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.notes.update_a_note(
- id="id",
- text="In communication with client_dev for resolution of queries.",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str` β Note ID to update
-
-
-
-
-
--
-
-**request:** `NoteData`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Tasks
-client.tasks.get_all_tasks(...) -> GetCrmTasksResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tasks.get_all_tasks(
- sort_by="name",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**filter_type:** `typing.Optional[str]` β Filter by task type (ID)
-
-
-
-
-
--
-
-**filter_status:** `typing.Optional[GetCrmTasksRequestFilterStatus]` β Filter by task status
-
-
-
-
-
--
-
-**filter_date:** `typing.Optional[GetCrmTasksRequestFilterDate]` β Filter by date
-
-
-
-
-
--
-
-**filter_assign_to:** `typing.Optional[str]` β Filter by the "assignTo" ID. You can utilize account emails for the "assignTo" attribute.
-
-
-
-
-
--
-
-**filter_contacts:** `typing.Optional[str]` β Filter by contact ids
-
-
-
-
-
--
-
-**filter_deals:** `typing.Optional[str]` β Filter by deals ids
-
-
-
-
-
--
-
-**filter_companies:** `typing.Optional[str]` β Filter by companies ids
-
-
-
-
-
--
-
-**date_from:** `typing.Optional[int]` β dateFrom to date range filter type (timestamp in milliseconds)
-
-
-
-
-
--
-
-**date_to:** `typing.Optional[int]` β dateTo to date range filter type (timestamp in milliseconds)
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetCrmTasksRequestSort]` β Sort the results in the ascending/descending order. Default order is **descending** by creation if `sort` is not passed
-
-
-
-
-
--
-
-**sort_by:** `typing.Optional[str]` β The field used to sort field names.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tasks.create_a_task(...) -> PostCrmTasksResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-import datetime
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tasks.create_a_task(
- date=datetime.datetime.fromisoformat("2021-11-01T17:44:54+00:00"),
- name="Task: Connect with client_dev",
- task_type_id="61a5cd07ca1347c82306ad09",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**date:** `datetime.datetime` β Task due date and time
-
-
-
-
-
--
-
-**name:** `str` β Name of task
-
-
-
-
-
--
-
-**task_type_id:** `str` β Id for type of task e.g Call / Email / Meeting etc.
-
-
-
-
-
--
-
-**assign_to_id:** `typing.Optional[str]` β To assign a task to a user you can use either the account email or ID.
-
-
-
-
-
--
-
-**companies_ids:** `typing.Optional[typing.List[str]]` β Companies ids for companies a task is linked to
-
-
-
-
-
--
-
-**contacts_ids:** `typing.Optional[typing.List[int]]` β Contact ids for contacts linked to this task
-
-
-
-
-
--
-
-**deals_ids:** `typing.Optional[typing.List[str]]` β Deal ids for deals a task is linked to
-
-
-
-
-
--
-
-**done:** `typing.Optional[bool]` β Task marked as done
-
-
-
-
-
--
-
-**duration:** `typing.Optional[int]` β Duration of task in milliseconds [1 minute = 60000 ms]
-
-
-
-
-
--
-
-**notes:** `typing.Optional[str]` β Notes added to a task
-
-
-
-
-
--
-
-**reminder:** `typing.Optional[TaskReminder]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tasks.get_a_task(...) -> Task
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tasks.get_a_task(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tasks.delete_a_task(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tasks.delete_a_task(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tasks.update_a_task(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tasks.update_a_task(
- id="id",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**assign_to_id:** `typing.Optional[str]` β To assign a task to a user you can use either the account email or ID.
-
-
-
-
-
--
-
-**companies_ids:** `typing.Optional[typing.List[str]]` β Companies ids for companies a task is linked to
-
-
-
-
-
--
-
-**contacts_ids:** `typing.Optional[typing.List[int]]` β Contact ids for contacts linked to this task
-
-
-
-
-
--
-
-**date:** `typing.Optional[datetime.datetime]` β Task date/time
-
-
-
-
-
--
-
-**deals_ids:** `typing.Optional[typing.List[str]]` β Deal ids for deals a task is linked to
-
-
-
-
-
--
-
-**done:** `typing.Optional[bool]` β Task marked as done
-
-
-
-
-
--
-
-**duration:** `typing.Optional[int]` β Duration of task in milliseconds [1 minute = 60000 ms]
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` β Name of task
-
-
-
-
-
--
-
-**notes:** `typing.Optional[str]` β Notes added to a task
-
-
-
-
-
--
-
-**reminder:** `typing.Optional[TaskReminder]`
-
-
-
-
-
--
-
-**task_type_id:** `typing.Optional[str]` β Id for type of task e.g Call / Email / Meeting etc.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tasks.get_all_task_types() -> GetCrmTasktypesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.tasks.get_all_task_types()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## TransactionalWhatsApp
-client.transactional_whats_app.send_whatsapp_message(...) -> SendWhatsappMessageResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
-[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
-This endpoint is used to send a WhatsApp message.
(**The first message you send using the API must contain a Template ID. You must create a template on WhatsApp on the Brevo platform to fetch the Template ID.**)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.transactional_whats_app import SendWhatsappMessageRequestParams
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_whats_app.send_whatsapp_message(
- request=SendWhatsappMessageRequestParams(
- contact_numbers=[
- "contactNumbers"
- ],
- sender_number="senderNumber",
- template_id=123,
- ),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `SendWhatsappMessageRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_whats_app.get_whatsapp_event_report(...) -> GetWhatsappEventReportResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will show the unaggregated statistics for WhatsApp activity (30 days by default if `startDate` and `endDate` or `days` is not passed. The date range can not exceed 90 days)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_whats_app.get_whatsapp_event_report()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number limitation for the result returned
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Beginning point in the list to retrieve from
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]` β Number of days in the past including today (positive integer). _Not compatible with 'startDate' and 'endDate'_
-
-
-
-
-
--
-
-**contact_number:** `typing.Optional[str]` β Filter results for specific contact (WhatsApp Number with country code. Example, 85264318721)
-
-
-
-
-
--
-
-**event:** `typing.Optional[GetWhatsappEventReportRequestEvent]` β Filter the report for a specific event type
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetWhatsappEventReportRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## TransactionalEmails
-client.transactional_emails.get_transac_blocked_contacts(...) -> GetTransacBlockedContactsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_transac_blocked_contacts()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date (YYYY-MM-DD) from which you want to fetch the blocked or unsubscribed contacts
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date (YYYY-MM-DD) till which you want to fetch the blocked or unsubscribed contacts
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document on the page
-
-
-
-
-
--
-
-**senders:** `typing.Optional[typing.Union[str, typing.Sequence[str]]]` β Comma separated list of emails of the senders from which contacts are blocked or unsubscribed
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetTransacBlockedContactsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.unblock_or_resubscribe_a_transactional_contact(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.unblock_or_resubscribe_a_transactional_contact(
- email="email",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `str` β contact email (urlencoded) to unblock.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_blocked_domains() -> GetBlockedDomainsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Get the list of blocked domains
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_blocked_domains()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.block_new_domain(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Blocks a new domain in order to avoid messages being sent to the same
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.block_new_domain(
- domain="example.com",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**domain:** `str` β name of the domain to be blocked
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.delete_blocked_domain(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Unblocks an existing domain from the list of blocked domains
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.delete_blocked_domain(
- domain="domain",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**domain:** `str` β The name of the domain to be deleted
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.delete_hardbounces(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Delete hardbounces. To use carefully (e.g. in case of temporary ISP failures)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.delete_hardbounces()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**contact_email:** `typing.Optional[str]` β Target a specific email address
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β Ending date (YYYY-MM-DD) of the time period for deletion. The hardbounces until this date will be deleted. Must be greater than or equal to the startDate
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β Starting date (YYYY-MM-DD) of the time period for deletion. The hardbounces occurred after this date will be deleted. Must be less than or equal to the endDate
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.send_transac_email(...) -> SendTransacEmailResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.transactional_emails import SendTransacEmailRequestSender, SendTransacEmailRequestToItem
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.send_transac_email(
- html_content="
Hello,
This is my first transactional email sent from Brevo.
",
- sender=SendTransacEmailRequestSender(
- email="hello@brevo.com",
- name="Alex from Brevo",
- ),
- subject="Hello from Brevo!",
- to=[
- SendTransacEmailRequestToItem(
- email="johndoe@example.com",
- name="John Doe",
- )
- ],
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**attachment:** `typing.Optional[typing.List[SendTransacEmailRequestAttachmentItem]]` β Array of attachment objects. Each attachment must include either an absolute URL (no local file paths) or base64-encoded content, along with the attachment filename. The `name` field is required when `content` is provided. Supported file extensions: xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub, eps, odt, mp3, m4a, m4v, wma, ogg, flac, wav, aif, aifc, aiff, mp4, mov, avi, mkv, mpeg, mpg, wmv, pkpass, xlsm. When `templateId` is specified: if the template uses the New Template Language format, both `url` and `content` attachment types are supported; if the template uses the Old Template Language format, the `attachment` parameter is ignored.
-
-
-
-
-
--
-
-**batch_id:** `typing.Optional[str]` β UUIDv4 identifier for the scheduled batch of transactional emails. If omitted, a valid UUIDv4 batch identifier is automatically generated.
-
-
-
-
-
--
-
-**bcc:** `typing.Optional[typing.List[SendTransacEmailRequestBccItem]]` β Array of BCC recipient objects. Each object contains an email address and an optional name.
-
-
-
-
-
--
-
-**cc:** `typing.Optional[typing.List[SendTransacEmailRequestCcItem]]` β Array of CC recipient objects. Each object contains an email address and an optional name.
-
-
-
-
-
--
-
-**headers:** `typing.Optional[typing.Dict[str, typing.Any]]` β Custom email headers (non-standard headers) to include in the email. The `sender.ip` header can be set to specify the IP address used for sending transactional emails (dedicated IP users only). Header names must use Title-Case-Format (words separated by hyphens with the first letter of each word capitalized). Headers not in this format are automatically converted. Standard email headers are not supported. Example: `{"sender.ip":"1.2.3.4", "X-Mailin-custom":"some_custom_value", "Idempotency-Key":"abc-123"}`
-
-
-
-
-
--
-
-**html_content:** `typing.Optional[str]` β HTML body content of the email. Required when `templateId` is not provided. Ignored when `templateId` is provided.
-
-
-
-
-
--
-
-**message_versions:** `typing.Optional[typing.List[SendTransacEmailRequestMessageVersionsItem]]` β Array of message version objects for sending customized email variants. The `templateId` can be customized per version only if a global `templateId` is provided. The `htmlContent` and `textContent` can be customized per version only if at least one of these is present in the global parameters. Global parameters such as `to` (required), `bcc`, `cc`, `replyTo`, and `subject` can be customized per version. Maximum total recipients per API request is 2000. Maximum recipients per message version is 99. Individual `params` objects must not exceed 100 KB. Cumulative `params` across all versions must not exceed 1000 KB. See https://developers.brevo.com/docs/batch-send-transactional-emails for detailed usage instructions.
-
-
-
-
-
--
-
-**params:** `typing.Optional[typing.Dict[str, typing.Any]]` β Key-value pairs for template variable substitution. Only applicable when the template uses the New Template Language format.
-
-
-
-
-
--
-
-**reply_to:** `typing.Optional[SendTransacEmailRequestReplyTo]` β Reply-to email address (required) and optional display name. Recipients will use this address when replying to the email.
-
-
-
-
-
--
-
-**scheduled_at:** `typing.Optional[datetime.datetime]` β UTC date-time when the email should be sent (format: YYYY-MM-DDTHH:mm:ss.SSSZ). Include timezone information in the date-time value. Scheduled emails may be delayed by up to 5 minutes.
-
-
-
-
-
--
-
-**sender:** `typing.Optional[SendTransacEmailRequestSender]` β Sender information. Required when `templateId` is not provided. Specify either an email address (with optional name) or a sender ID. The `name` field is ignored when `id` is provided.
-
-
-
-
-
--
-
-**subject:** `typing.Optional[str]` β Email subject line. Required when `templateId` is not provided.
-
-
-
-
-
--
-
-**tags:** `typing.Optional[typing.List[str]]` β Array of tags for categorizing and filtering emails
-
-
-
-
-
--
-
-**template_id:** `typing.Optional[int]` β Template identifier
-
-
-
-
-
--
-
-**text_content:** `typing.Optional[str]` β Plain text body content of the email. Ignored when `templateId` is provided.
-
-
-
-
-
--
-
-**to:** `typing.Optional[typing.List[SendTransacEmailRequestToItem]]` β Array of recipient objects. Each object contains an email address and an optional display name. Required when `messageVersions` is not provided. Ignored when `messageVersions` is provided. Example: `[{"name":"Jimmy", "email":"jimmy@example.com"}, {"name":"Joe", "email":"joe@example.com"}]`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.delete_scheduled_email_by_id(...)
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Delete scheduled batch of emails by batchId or single scheduled email by messageId
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.delete_scheduled_email_by_id(
- identifier="4320f270-a4e3-4a2e-b591-edfe30a5e627",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**identifier:** `str` β The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_scheduled_email_by_id(...) -> GetScheduledEmailByIdResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-Fetch scheduled batch of emails by batchId or single scheduled email by messageId (Can retrieve data upto 30 days old)
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-import datetime
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_scheduled_email_by_id(
- identifier="4320f270-a4e3-4a2e-b591-edfe30a5e627",
- start_date=datetime.date.fromisoformat("2022-02-02"),
- end_date=datetime.date.fromisoformat("2022-03-02"),
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**identifier:** `str` β The `batchId` of scheduled emails batch (Should be a valid UUIDv4) or the `messageId` of scheduled email.
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[datetime.date]` β Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which you want to fetch the list. Can be maximum 30 days older tha current date.
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[datetime.date]` β Mandatory if `startDate` is used. Ending date (YYYY-MM-DD) till which you want to fetch the list. Maximum time period that can be selected is one month.
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetScheduledEmailByIdRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed. Not valid when identifier is `messageId`.
-
-
-
-
-
--
-
-**status:** `typing.Optional[GetScheduledEmailByIdRequestStatus]` β Filter the records by `status` of the scheduled email batch or message. Not valid when identifier is `messageId`.
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page. Not valid when identifier is `messageId`.
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document on the page. Not valid when identifier is `messageId`.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_transac_emails_list(...) -> GetTransacEmailsListResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will show the list of emails for past 30 days by default. To retrieve emails before that time, please pass startDate and endDate in query filters.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_transac_emails_list()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**email:** `typing.Optional[str]` β **Mandatory if templateId and messageId are not passed in query filters.** Email address to which transactional email has been sent.
-
-
-
-
-
--
-
-**template_id:** `typing.Optional[int]` β **Mandatory if email and messageId are not passed in query filters.** Id of the template that was used to compose transactional email.
-
-
-
-
-
--
-
-**message_id:** `typing.Optional[str]` β **Mandatory if templateId and email are not passed in query filters.** Message ID of the transactional email sent.
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date (YYYY-MM-DD) from which you want to fetch the list. **Maximum time period that can be selected is one month**.
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date (YYYY-MM-DD) till which you want to fetch the list. **Maximum time period that can be selected is one month.**
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetTransacEmailsListRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_transac_email_content(...) -> GetTransacEmailContentResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-You can get the uuid using either of the following methods:
-Send a GET request to https://api.brevo.com/v3/smtp/emails and pass the message_id in the url. Use your api-key to authenticate the request and you will get your uuid as a response.
-The uuid can also be fetched from the transactional logs page in your Brevo account, from the address URL.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_transac_email_content(
- uuid_="uuid",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**uuid:** `str` β Unique id of the transactional email that has been sent to a particular contact
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.delete_an_smtp_transactional_log(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.delete_an_smtp_transactional_log(
- identifier="identifier",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**identifier:** `str` β MessageId of the transactional log(s) to delete
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_aggregated_smtp_report(...) -> GetAggregatedSmtpReportResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will show the aggregated stats for past 90 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 90 days
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_aggregated_smtp_report()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]` β Number of days in the past including today (positive integer). _Not compatible with 'startDate' and 'endDate'_
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Tag of the emails
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_email_event_report(...) -> GetEmailEventReportResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-This endpoint will show the aggregated stats for past 30 days by default if `startDate` and `endDate` OR `days` is not passed. The date range can not exceed 90 days
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_email_event_report()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number limitation for the result returned
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Beginning point in the list to retrieve from.
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date of the report (YYYY-MM-DD). Must be lower than equal to endDate
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date of the report (YYYY-MM-DD). Must be greater than equal to startDate
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]` β Number of days in the past including today (positive integer). _Not compatible with 'startDate' and 'endDate'_
-
-
-
-
-
--
-
-**email:** `typing.Optional[str]` β Filter the report for a specific email addresses
-
-
-
-
-
--
-
-**event:** `typing.Optional[GetEmailEventReportRequestEvent]` β Filter the report for a specific event type
-
-
-
-
-
--
-
-**tags:** `typing.Optional[str]` β Filter the report for tags (serialized and urlencoded array)
-
-
-
-
-
--
-
-**message_id:** `typing.Optional[str]` β Filter on a specific message id
-
-
-
-
-
--
-
-**template_id:** `typing.Optional[int]` β Filter on a specific template id
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetEmailEventReportRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_smtp_report(...) -> GetSmtpReportResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_smtp_report()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document on the page
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date of the report (YYYY-MM-DD)
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date of the report (YYYY-MM-DD)
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]` β Number of days in the past including today (positive integer). _Not compatible with 'startDate' and 'endDate'_
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Tag of the emails
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetSmtpReportRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.post_preview_smtp_email_templates(...) -> PostPreviewSmtpEmailTemplatesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.post_preview_smtp_email_templates(
- request={"key": "value"},
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `typing.Any`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_smtp_templates(...) -> GetSmtpTemplatesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_smtp_templates()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**template_status:** `typing.Optional[bool]` β Filter on the status of the template. Active = true, inactive = false
-
-
-
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetSmtpTemplatesRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.create_smtp_template(...) -> CreateSmtpTemplateResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-from brevo.transactional_emails import CreateSmtpTemplateRequestSender
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.create_smtp_template(
- sender=CreateSmtpTemplateRequestSender(),
- subject="Thanks for your purchase !",
- template_name="Order Confirmation - EN",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**sender:** `CreateSmtpTemplateRequestSender` β Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example: **{"name":"xyz", "email":"example@abc.com"}** **{"name":"xyz", "id":123}**
-
-
-
-
-
--
-
-**subject:** `str` β Subject of the template
-
-
-
-
-
--
-
-**template_name:** `str` β Name of the template
-
-
-
-
-
--
-
-**attachment_url:** `typing.Optional[str]` β Absolute url of the attachment (**no local file**). Extension allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps'
-
-
-
-
-
--
-
-**html_content:** `typing.Optional[str]` β Body of the message (HTML version). The field must have more than 10 characters. **REQUIRED if htmlUrl is empty**
-
-
-
-
-
--
-
-**html_url:** `typing.Optional[str]` β Url which contents the body of the email message. REQUIRED if htmlContent is empty
-
-
-
-
-
--
-
-**is_active:** `typing.Optional[bool]` β Status of template. isActive = true means template is active and isActive = false means template is inactive
-
-
-
-
-
--
-
-**reply_to:** `typing.Optional[str]` β Email on which campaign recipients will be able to reply to
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Tag of the template
-
-
-
-
-
--
-
-**to_field:** `typing.Optional[str]` β To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.get_smtp_template(...) -> GetSmtpTemplateOverview
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.get_smtp_template(
- template_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**template_id:** `int` β id of the template
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.update_smtp_template(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.update_smtp_template(
- template_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**template_id:** `int` β id of the template
-
-
-
-
-
--
-
-**attachment_url:** `typing.Optional[str]` β Absolute url of the attachment (**no local file**). Extensions allowed: #### xlsx, xls, ods, docx, docm, doc, csv, pdf, txt, gif, jpg, jpeg, png, tif, tiff, rtf, bmp, cgm, css, shtml, html, htm, zip, xml, ppt, pptx, tar, ez, ics, mobi, msg, pub and eps
-
-
-
-
-
--
-
-**html_content:** `typing.Optional[str]` β **Required if htmlUrl is empty**. If the template is designed using Drag & Drop editor via HTML content, then the design page will not have Drag & Drop editor access for that template. Body of the message (HTML must have more than 10 characters)
-
-
-
-
-
--
-
-**html_url:** `typing.Optional[str]` β **Required if htmlContent is empty**. URL to the body of the email (HTML)
-
-
-
-
-
--
-
-**is_active:** `typing.Optional[bool]` β Status of the template. isActive = false means template is inactive, isActive = true means template is active
-
-
-
-
-
--
-
-**reply_to:** `typing.Optional[str]` β Email on which campaign recipients will be able to reply to
-
-
-
-
-
--
-
-**sender:** `typing.Optional[UpdateSmtpTemplateRequestSender]` β Sender details including id or email and name (_optional_). Only one of either Sender's email or Sender's ID shall be passed in one request at a time. For example: **{"name":"xyz", "email":"example@abc.com"}** **{"name":"xyz", "id":123}**
-
-
-
-
-
--
-
-**subject:** `typing.Optional[str]` β Subject of the email
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Tag of the template
-
-
-
-
-
--
-
-**template_name:** `typing.Optional[str]` β Name of the template
-
-
-
-
-
--
-
-**to_field:** `typing.Optional[str]` β To personalize the **To** Field. If you want to include the first name and last name of your recipient, add **{FNAME} {LNAME}**. These contact attributes must already exist in your Brevo account. If input parameter **params** used please use **{{contact.FNAME}} {{contact.LNAME}}** for personalization
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.delete_smtp_template(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.delete_smtp_template(
- template_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**template_id:** `int` β id of the template
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_emails.send_test_template(...)
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_emails.send_test_template(
- template_id=1000000,
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**template_id:** `int` β Id of the template
-
-
-
-
-
--
-
-**request:** `SendTestEmail`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## TransactionalSms
-client.transactional_sms.send_async_transactional_sms(...) -> SendAsyncTransactionalSmsResponse
-
--
-
-#### π Description
-
-
--
-
-
--
-
-If the user includes stop code in the Transactional SMS, then it will be switched to Marketing SMS automatically and it will be interpreted as a Marketing SMS. To send Transactional SMS as Transactional, it is important not to use stop code.
-Note: For adding a stop code, client has to add reply STOP to [STOP_CODE] and the [STOP_CODE] will be replaced with the number.
-Transactional SMS can be sent at any time without time restrictions. However, if a message is categorized as Marketing, it must adhere to specific time restrictions. Messages sent outside of these restricted hours will experience delays and will be processed during allowable times. Specifically, Marketing SMS cannot be processed between 10pm and 8am, on Sundays, and on French public holidays.
-
-
-
-
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_sms.send_async_transactional_sms(
- recipient="33689965433",
- sender="MyShop",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `SendTransacSms`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_sms.send_transac_sms(...) -> SendTransacSmsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_sms.send_transac_sms(
- recipient="33689965433",
- sender="MyShop",
-)
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**request:** `SendTransacSms`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_sms.get_transac_aggregated_sms_report(...) -> GetTransacAggregatedSmsReportResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_sms.get_transac_aggregated_sms_report()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date (YYYY-MM-DD) of the report
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date (YYYY-MM-DD) of the report
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]` β Number of days in the past including today (positive integer). **Not compatible with startDate and endDate**
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Filter on a tag
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_sms.get_sms_events(...) -> GetSmsEventsResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_sms.get_sms_events()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents per page
-
-
-
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date (YYYY-MM-DD) of the report
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date (YYYY-MM-DD) of the report
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document of the page
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]` β Number of days in the past including today (positive integer). **Not compatible with 'startDate' and 'endDate'**
-
-
-
-
-
--
-
-**phone_number:** `typing.Optional[str]` β Filter the report for a specific phone number
-
-
-
-
-
--
-
-**event:** `typing.Optional[GetSmsEventsRequestEvent]` β Filter the report for specific events
-
-
-
-
-
--
-
-**tags:** `typing.Optional[str]` β Filter the report for specific tags passed as a serialized urlencoded array
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetSmsEventsRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.transactional_sms.get_transac_sms_report(...) -> GetTransacSmsReportResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.transactional_sms.get_transac_sms_report()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**start_date:** `typing.Optional[str]` β **Mandatory if endDate is used.** Starting date (YYYY-MM-DD) of the report
-
-
-
-
-
--
-
-**end_date:** `typing.Optional[str]` β **Mandatory if startDate is used.** Ending date (YYYY-MM-DD) of the report
-
-
-
-
-
--
-
-**days:** `typing.Optional[int]` β Number of days in the past including today (positive integer). **Not compatible with 'startDate' and 'endDate'**
-
-
-
-
-
--
-
-**tag:** `typing.Optional[str]` β Filter on a tag
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetTransacSmsReportRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## SmsTemplates
-client.sms_templates.get_sms_templates(...) -> GetSmsTemplatesResponse
-
--
-
-#### π Usage
-
-
--
-
-
--
-
-```python
-from brevo import Brevo
-from brevo.environment import BrevoEnvironment
-
-client = Brevo(
- api_key="",
- environment=BrevoEnvironment.DEFAULT,
-)
-
-client.sms_templates.get_sms_templates()
-
-```
-
-
-
-
-
-#### βοΈ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[int]` β Number of documents returned per page
-
-
-
-
-
--
-
-**offset:** `typing.Optional[int]` β Index of the first document in the page
-
-
-
-
-
--
-
-**sort:** `typing.Optional[GetSmsTemplatesRequestSort]` β Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` β Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/brevo/__init__.py b/src/brevo/__init__.py
index eeb0c33..d77e511 100644
--- a/src/brevo/__init__.py
+++ b/src/brevo/__init__.py
@@ -15,8 +15,6 @@
BalanceDefinition,
BalanceDefinitionBalanceAvailabilityDurationModifier,
BalanceLimit,
- BatchEventsResponse,
- BatchEventsResponseErrorsItem,
BrevoError,
Cart,
Company,
@@ -86,6 +84,8 @@
OrderIdentifiers,
OrderMetaInfoValue,
OrderProductsItem,
+ OrderProductsItemQuantity,
+ OrderProductsItemQuantityFloat,
Pipeline,
PipelineStagesItem,
Pipelines,
@@ -455,12 +455,6 @@
)
from .environment import BrevoEnvironment
from .event import (
- CreateBatchEventsRequestItem,
- CreateBatchEventsRequestItemContactPropertiesValue,
- CreateBatchEventsRequestItemEventPropertiesValue,
- CreateBatchEventsRequestItemIdentifiers,
- CreateBatchEventsRequestItemObject,
- CreateBatchEventsRequestItemObjectIdentifiers,
CreateEventRequestContactPropertiesValue,
CreateEventRequestEventPropertiesValue,
CreateEventRequestIdentifiers,
@@ -812,8 +806,6 @@
"BatchDeleteObjectRecordsRequestIdentifiersExtIds": ".custom_objects",
"BatchDeleteObjectRecordsRequestIdentifiersIds": ".custom_objects",
"BatchDeleteObjectRecordsResponse": ".custom_objects",
- "BatchEventsResponse": ".types",
- "BatchEventsResponseErrorsItem": ".types",
"Brevo": ".client",
"BrevoEnvironment": ".environment",
"BrevoError": ".types",
@@ -843,12 +835,6 @@
"CreateBalanceLimitRequestDurationUnit": ".balance",
"CreateBalanceLimitRequestTransactionType": ".balance",
"CreateBalanceOrderResponse": ".balance",
- "CreateBatchEventsRequestItem": ".event",
- "CreateBatchEventsRequestItemContactPropertiesValue": ".event",
- "CreateBatchEventsRequestItemEventPropertiesValue": ".event",
- "CreateBatchEventsRequestItemIdentifiers": ".event",
- "CreateBatchEventsRequestItemObject": ".event",
- "CreateBatchEventsRequestItemObjectIdentifiers": ".event",
"CreateBatchOrderResponse": ".ecommerce",
"CreateContactRequestAttributesValue": ".contacts",
"CreateContactResponse": ".contacts",
@@ -1323,6 +1309,8 @@
"OrderIdentifiers": ".types",
"OrderMetaInfoValue": ".types",
"OrderProductsItem": ".types",
+ "OrderProductsItemQuantity": ".types",
+ "OrderProductsItemQuantityFloat": ".types",
"PatchCrmAttributesIdRequestObjectType": ".companies",
"PatchCrmAttributesIdRequestOptionsLabelsItem": ".companies",
"PaymentRequiredError": ".errors",
@@ -1567,8 +1555,6 @@ def __dir__():
"BatchDeleteObjectRecordsRequestIdentifiersExtIds",
"BatchDeleteObjectRecordsRequestIdentifiersIds",
"BatchDeleteObjectRecordsResponse",
- "BatchEventsResponse",
- "BatchEventsResponseErrorsItem",
"Brevo",
"BrevoEnvironment",
"BrevoError",
@@ -1598,12 +1584,6 @@ def __dir__():
"CreateBalanceLimitRequestDurationUnit",
"CreateBalanceLimitRequestTransactionType",
"CreateBalanceOrderResponse",
- "CreateBatchEventsRequestItem",
- "CreateBatchEventsRequestItemContactPropertiesValue",
- "CreateBatchEventsRequestItemEventPropertiesValue",
- "CreateBatchEventsRequestItemIdentifiers",
- "CreateBatchEventsRequestItemObject",
- "CreateBatchEventsRequestItemObjectIdentifiers",
"CreateBatchOrderResponse",
"CreateContactRequestAttributesValue",
"CreateContactResponse",
@@ -2078,6 +2058,8 @@ def __dir__():
"OrderIdentifiers",
"OrderMetaInfoValue",
"OrderProductsItem",
+ "OrderProductsItemQuantity",
+ "OrderProductsItemQuantityFloat",
"PatchCrmAttributesIdRequestObjectType",
"PatchCrmAttributesIdRequestOptionsLabelsItem",
"PaymentRequiredError",
diff --git a/src/brevo/account/raw_client.py b/src/brevo/account/raw_client.py
index 2c565c5..848f814 100644
--- a/src/brevo/account/raw_client.py
+++ b/src/brevo/account/raw_client.py
@@ -6,13 +6,11 @@
from ..core.api_error import ApiError
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
from .types.get_account_activity_response import GetAccountActivityResponse
from .types.get_account_response import GetAccountResponse
-from pydantic import ValidationError
class RawAccountClient:
@@ -79,10 +77,6 @@ def get_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_account_activity(
@@ -180,10 +174,6 @@ def get_account_activity(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -251,10 +241,6 @@ async def get_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_account_activity(
@@ -352,8 +338,4 @@ async def get_account_activity(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/account/types/get_account_response_plan_verticals_item.py b/src/brevo/account/types/get_account_response_plan_verticals_item.py
index d94a27b..5265b2c 100644
--- a/src/brevo/account/types/get_account_response_plan_verticals_item.py
+++ b/src/brevo/account/types/get_account_response_plan_verticals_item.py
@@ -43,7 +43,7 @@ class GetAccountResponsePlanVerticalsItem(UncheckedBaseModel):
FieldMetadata(alias="endDate"),
pydantic.Field(alias="endDate", description="Plan end date (Unix timestamp)"),
]
- users: typing.Optional[GetAccountResponsePlanVerticalsItemUsers] = pydantic.Field(default=None)
+ users: GetAccountResponsePlanVerticalsItemUsers = pydantic.Field()
"""
User seat information for the plan
"""
diff --git a/src/brevo/balance/raw_client.py b/src/brevo/balance/raw_client.py
index e2c0fcf..4bb85b8 100644
--- a/src/brevo/balance/raw_client.py
+++ b/src/brevo/balance/raw_client.py
@@ -8,7 +8,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.failed_dependency_error import FailedDependencyError
@@ -79,7 +78,6 @@
from .types.update_balance_limit_request_constraint_type import UpdateBalanceLimitRequestConstraintType
from .types.update_balance_limit_request_duration_unit import UpdateBalanceLimitRequestDurationUnit
from .types.update_balance_limit_request_transaction_type import UpdateBalanceLimitRequestTransactionType
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -216,10 +214,6 @@ def get_active_balances_api(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_balance_definition_list(
@@ -333,10 +327,6 @@ def get_balance_definition_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_balance_definition(
@@ -530,10 +520,6 @@ def create_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_balance_definition(
@@ -642,10 +628,6 @@ def get_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_balance_definition(
@@ -852,10 +834,6 @@ def update_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_balance_definition(
@@ -945,10 +923,6 @@ def delete_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_balance_limit(
@@ -1086,10 +1060,6 @@ def create_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_balance_limit(
@@ -1202,10 +1172,6 @@ def get_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_balance_limit(
@@ -1347,10 +1313,6 @@ def update_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_balance_limit(
@@ -1443,10 +1405,6 @@ def delete_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_contact_balances(
@@ -1541,10 +1499,6 @@ def get_contact_balances(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_balance_order(
@@ -1672,10 +1626,6 @@ def create_balance_order(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_subscription_balances(
@@ -1773,10 +1723,6 @@ def get_subscription_balances(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_subscription_balances(
@@ -1884,10 +1830,6 @@ def create_subscription_balances(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_transaction_history_api(
@@ -2022,10 +1964,6 @@ def get_transaction_history_api(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def begin_transaction(
@@ -2174,10 +2112,6 @@ def begin_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def cancel_transaction(
@@ -2275,10 +2209,6 @@ def cancel_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def complete_transaction(
@@ -2376,10 +2306,6 @@ def complete_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -2514,10 +2440,6 @@ async def get_active_balances_api(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_balance_definition_list(
@@ -2631,10 +2553,6 @@ async def get_balance_definition_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_balance_definition(
@@ -2828,10 +2746,6 @@ async def create_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_balance_definition(
@@ -2940,10 +2854,6 @@ async def get_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_balance_definition(
@@ -3150,10 +3060,6 @@ async def update_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_balance_definition(
@@ -3243,10 +3149,6 @@ async def delete_balance_definition(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_balance_limit(
@@ -3384,10 +3286,6 @@ async def create_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_balance_limit(
@@ -3500,10 +3398,6 @@ async def get_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_balance_limit(
@@ -3645,10 +3539,6 @@ async def update_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_balance_limit(
@@ -3741,10 +3631,6 @@ async def delete_balance_limit(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_contact_balances(
@@ -3839,10 +3725,6 @@ async def get_contact_balances(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_balance_order(
@@ -3970,10 +3852,6 @@ async def create_balance_order(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_subscription_balances(
@@ -4071,10 +3949,6 @@ async def get_subscription_balances(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_subscription_balances(
@@ -4182,10 +4056,6 @@ async def create_subscription_balances(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_transaction_history_api(
@@ -4320,10 +4190,6 @@ async def get_transaction_history_api(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def begin_transaction(
@@ -4472,10 +4338,6 @@ async def begin_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def cancel_transaction(
@@ -4573,10 +4435,6 @@ async def cancel_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def complete_transaction(
@@ -4674,8 +4532,4 @@ async def complete_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/companies/raw_client.py b/src/brevo/companies/raw_client.py
index 12f7f5d..4353d9e 100644
--- a/src/brevo/companies/raw_client.py
+++ b/src/brevo/companies/raw_client.py
@@ -9,7 +9,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -26,7 +25,6 @@
from .types.post_crm_attributes_request_attribute_type import PostCrmAttributesRequestAttributeType
from .types.post_crm_attributes_request_object_type import PostCrmAttributesRequestObjectType
from .types.post_crm_attributes_response import PostCrmAttributesResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -128,10 +126,6 @@ def get_all_companies(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_a_company(
@@ -210,10 +204,6 @@ def create_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def import_companies_creation_and_updation(
@@ -284,10 +274,6 @@ def import_companies_creation_and_updation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def link_and_unlink_company_with_contact_and_deal(
@@ -356,10 +342,6 @@ def link_and_unlink_company_with_contact_and_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_a_company(
@@ -419,10 +401,6 @@ def get_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_company(
@@ -474,10 +452,6 @@ def delete_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_a_company(
@@ -570,10 +544,6 @@ def update_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_a_company_deal_attribute(
@@ -652,10 +622,6 @@ def create_a_company_deal_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_an_attribute(
@@ -707,10 +673,6 @@ def delete_an_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_an_attribute(
@@ -790,10 +752,6 @@ def update_an_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_company_attributes(
@@ -828,10 +786,6 @@ def get_company_attributes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -931,10 +885,6 @@ async def get_all_companies(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_a_company(
@@ -1013,10 +963,6 @@ async def create_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def import_companies_creation_and_updation(
@@ -1087,10 +1033,6 @@ async def import_companies_creation_and_updation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def link_and_unlink_company_with_contact_and_deal(
@@ -1159,10 +1101,6 @@ async def link_and_unlink_company_with_contact_and_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_a_company(
@@ -1222,10 +1160,6 @@ async def get_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_company(
@@ -1277,10 +1211,6 @@ async def delete_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_a_company(
@@ -1373,10 +1303,6 @@ async def update_a_company(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_a_company_deal_attribute(
@@ -1455,10 +1381,6 @@ async def create_a_company_deal_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_an_attribute(
@@ -1510,10 +1432,6 @@ async def delete_an_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_an_attribute(
@@ -1593,10 +1511,6 @@ async def update_an_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_company_attributes(
@@ -1631,8 +1545,4 @@ async def get_company_attributes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/contacts/raw_client.py b/src/brevo/contacts/raw_client.py
index de5f47d..3ff6cd0 100644
--- a/src/brevo/contacts/raw_client.py
+++ b/src/brevo/contacts/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -62,7 +61,6 @@
from .types.update_contact_request_attributes_value import UpdateContactRequestAttributesValue
from .types.update_contact_request_identifier import UpdateContactRequestIdentifier
from .types.update_contact_request_identifier_type import UpdateContactRequestIdentifierType
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -170,10 +168,6 @@ def get_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_contact(
@@ -286,10 +280,6 @@ def create_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_attributes(
@@ -324,10 +314,6 @@ def get_attributes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_attribute(
@@ -410,10 +396,6 @@ def create_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_attribute(
@@ -497,10 +479,6 @@ def update_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_attribute(
@@ -559,10 +537,6 @@ def delete_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_multi_attribute_options(
@@ -621,10 +595,6 @@ def delete_multi_attribute_options(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_batch_contacts(
@@ -679,10 +649,6 @@ def update_batch_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_doi_contact(
@@ -764,10 +730,6 @@ def create_doi_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def request_contact_export(
@@ -878,10 +840,6 @@ def request_contact_export(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_folders(
@@ -952,10 +910,6 @@ def get_folders(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_folder(
@@ -1011,10 +965,6 @@ def create_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_folder(
@@ -1078,10 +1028,6 @@ def get_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_folder(
@@ -1147,10 +1093,6 @@ def update_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_folder(
@@ -1202,10 +1144,6 @@ def delete_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_folder_lists(
@@ -1289,10 +1227,6 @@ def get_folder_lists(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def import_contacts(
@@ -1407,10 +1341,6 @@ def import_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_lists(
@@ -1479,10 +1409,6 @@ def get_lists(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_list(
@@ -1542,10 +1468,6 @@ def create_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_list(
@@ -1620,10 +1542,6 @@ def get_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_list(
@@ -1694,10 +1612,6 @@ def update_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_list(
@@ -1749,10 +1663,6 @@ def delete_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_contacts_from_list(
@@ -1837,10 +1747,6 @@ def get_contacts_from_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def add_contact_to_list(
@@ -1913,10 +1819,6 @@ def add_contact_to_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def remove_contact_from_list(
@@ -1989,10 +1891,6 @@ def remove_contact_from_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_segments(
@@ -2057,10 +1955,6 @@ def get_segments(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_contact_info(
@@ -2144,10 +2038,6 @@ def get_contact_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_contact(
@@ -2269,10 +2159,6 @@ def update_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_contact(
@@ -2347,10 +2233,6 @@ def delete_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_contact_stats(
@@ -2425,10 +2307,6 @@ def get_contact_stats(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -2534,10 +2412,6 @@ async def get_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_contact(
@@ -2650,10 +2524,6 @@ async def create_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_attributes(
@@ -2688,10 +2558,6 @@ async def get_attributes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_attribute(
@@ -2774,10 +2640,6 @@ async def create_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_attribute(
@@ -2861,10 +2723,6 @@ async def update_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_attribute(
@@ -2923,10 +2781,6 @@ async def delete_attribute(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_multi_attribute_options(
@@ -2985,10 +2839,6 @@ async def delete_multi_attribute_options(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_batch_contacts(
@@ -3043,10 +2893,6 @@ async def update_batch_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_doi_contact(
@@ -3128,10 +2974,6 @@ async def create_doi_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def request_contact_export(
@@ -3242,10 +3084,6 @@ async def request_contact_export(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_folders(
@@ -3316,10 +3154,6 @@ async def get_folders(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_folder(
@@ -3375,10 +3209,6 @@ async def create_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_folder(
@@ -3442,10 +3272,6 @@ async def get_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_folder(
@@ -3511,10 +3337,6 @@ async def update_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_folder(
@@ -3566,10 +3388,6 @@ async def delete_folder(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_folder_lists(
@@ -3653,10 +3471,6 @@ async def get_folder_lists(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def import_contacts(
@@ -3771,10 +3585,6 @@ async def import_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_lists(
@@ -3843,10 +3653,6 @@ async def get_lists(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_list(
@@ -3906,10 +3712,6 @@ async def create_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_list(
@@ -3984,10 +3786,6 @@ async def get_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_list(
@@ -4058,10 +3856,6 @@ async def update_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_list(
@@ -4113,10 +3907,6 @@ async def delete_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_contacts_from_list(
@@ -4201,10 +3991,6 @@ async def get_contacts_from_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def add_contact_to_list(
@@ -4277,10 +4063,6 @@ async def add_contact_to_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def remove_contact_from_list(
@@ -4353,10 +4135,6 @@ async def remove_contact_from_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_segments(
@@ -4421,10 +4199,6 @@ async def get_segments(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_contact_info(
@@ -4508,10 +4282,6 @@ async def get_contact_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_contact(
@@ -4633,10 +4403,6 @@ async def update_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_contact(
@@ -4711,10 +4477,6 @@ async def delete_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_contact_stats(
@@ -4789,8 +4551,4 @@ async def get_contact_stats(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/conversations/raw_client.py b/src/brevo/conversations/raw_client.py
index 74d76fd..910efda 100644
--- a/src/brevo/conversations/raw_client.py
+++ b/src/brevo/conversations/raw_client.py
@@ -7,14 +7,12 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
from ..errors.not_found_error import NotFoundError
from ..types.conversations_message import ConversationsMessage
from .types.put_conversations_visitor_group_response import PutConversationsVisitorGroupResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -89,10 +87,6 @@ def sets_agents_status_to_online_for23minutes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_a_message_as_an_agent(
@@ -174,10 +168,6 @@ def send_a_message_as_an_agent(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_a_message(
@@ -237,10 +227,6 @@ def get_a_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_a_message_sent_by_an_agent(
@@ -312,10 +298,6 @@ def update_a_message_sent_by_an_agent(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_message_sent_by_an_agent(
@@ -369,10 +351,6 @@ def delete_a_message_sent_by_an_agent(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_an_automated_message_to_a_visitor(
@@ -446,10 +424,6 @@ def send_an_automated_message_to_a_visitor(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_an_automated_message(
@@ -509,10 +483,6 @@ def get_an_automated_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_an_automated_message(
@@ -582,10 +552,6 @@ def update_an_automated_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_an_automated_message(
@@ -637,10 +603,6 @@ def delete_an_automated_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def set_visitor_group_assignment(
@@ -708,10 +670,6 @@ def set_visitor_group_assignment(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -784,10 +742,6 @@ async def sets_agents_status_to_online_for23minutes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_a_message_as_an_agent(
@@ -869,10 +823,6 @@ async def send_a_message_as_an_agent(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_a_message(
@@ -932,10 +882,6 @@ async def get_a_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_a_message_sent_by_an_agent(
@@ -1007,10 +953,6 @@ async def update_a_message_sent_by_an_agent(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_message_sent_by_an_agent(
@@ -1064,10 +1006,6 @@ async def delete_a_message_sent_by_an_agent(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_an_automated_message_to_a_visitor(
@@ -1141,10 +1079,6 @@ async def send_an_automated_message_to_a_visitor(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_an_automated_message(
@@ -1204,10 +1138,6 @@ async def get_an_automated_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_an_automated_message(
@@ -1277,10 +1207,6 @@ async def update_an_automated_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_an_automated_message(
@@ -1332,10 +1258,6 @@ async def delete_an_automated_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def set_visitor_group_assignment(
@@ -1403,8 +1325,4 @@ async def set_visitor_group_assignment(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/core/__init__.py b/src/brevo/core/__init__.py
index 3b227d7..b91adb6 100644
--- a/src/brevo/core/__init__.py
+++ b/src/brevo/core/__init__.py
@@ -14,7 +14,6 @@
from .http_response import AsyncHttpResponse, HttpResponse
from .jsonable_encoder import jsonable_encoder
from .logging import ConsoleLogger, ILogger, LogConfig, LogLevel, Logger, create_logger
- from .parse_error import ParsingError
from .pydantic_utilities import (
IS_PYDANTIC_V2,
UniversalBaseModel,
@@ -45,7 +44,6 @@
"LogConfig": ".logging",
"LogLevel": ".logging",
"Logger": ".logging",
- "ParsingError": ".parse_error",
"RequestOptions": ".request_options",
"Rfc2822DateTime": ".datetime_utils",
"SyncClientWrapper": ".client_wrapper",
@@ -107,7 +105,6 @@ def __dir__():
"LogConfig",
"LogLevel",
"Logger",
- "ParsingError",
"RequestOptions",
"Rfc2822DateTime",
"SyncClientWrapper",
diff --git a/src/brevo/core/client_wrapper.py b/src/brevo/core/client_wrapper.py
index 9ae490a..8367ed7 100644
--- a/src/brevo/core/client_wrapper.py
+++ b/src/brevo/core/client_wrapper.py
@@ -27,12 +27,12 @@ def get_headers(self) -> typing.Dict[str, str]:
import platform
headers: typing.Dict[str, str] = {
- "User-Agent": "brevo-python/4.0.7",
+ "User-Agent": "brevo-python/4.0.6",
"X-Fern-Language": "Python",
"X-Fern-Runtime": f"python/{platform.python_version()}",
"X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
"X-Fern-SDK-Name": "brevo-python",
- "X-Fern-SDK-Version": "4.0.7",
+ "X-Fern-SDK-Version": "4.0.6",
**(self.get_custom_headers() or {}),
}
headers["api-key"] = self.api_key
diff --git a/src/brevo/core/parse_error.py b/src/brevo/core/parse_error.py
deleted file mode 100644
index 4527c6a..0000000
--- a/src/brevo/core/parse_error.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-from typing import Any, Dict, Optional
-
-
-class ParsingError(Exception):
- """
- Raised when the SDK fails to parse/validate a response from the server.
- This typically indicates that the server returned a response whose shape
- does not match the expected schema.
- """
-
- headers: Optional[Dict[str, str]]
- status_code: Optional[int]
- body: Any
- cause: Optional[Exception]
-
- def __init__(
- self,
- *,
- headers: Optional[Dict[str, str]] = None,
- status_code: Optional[int] = None,
- body: Any = None,
- cause: Optional[Exception] = None,
- ) -> None:
- self.headers = headers
- self.status_code = status_code
- self.body = body
- self.cause = cause
- super().__init__()
- if cause is not None:
- self.__cause__ = cause
-
- def __str__(self) -> str:
- cause_str = f", cause: {self.cause}" if self.cause is not None else ""
- return f"headers: {self.headers}, status_code: {self.status_code}, body: {self.body}{cause_str}"
diff --git a/src/brevo/coupons/raw_client.py b/src/brevo/coupons/raw_client.py
index 474a06c..2669c24 100644
--- a/src/brevo/coupons/raw_client.py
+++ b/src/brevo/coupons/raw_client.py
@@ -8,7 +8,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -19,7 +18,6 @@
from .types.get_coupon_collections_request_sort import GetCouponCollectionsRequestSort
from .types.get_coupon_collections_request_sort_by import GetCouponCollectionsRequestSortBy
from .types.update_coupon_collection_response import UpdateCouponCollectionResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -107,10 +105,6 @@ def get_coupon_collections(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_coupon_collection(
@@ -200,10 +194,6 @@ def create_coupon_collection(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_coupon_collection(
@@ -274,10 +264,6 @@ def get_coupon_collection(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_coupon_collection(
@@ -366,10 +352,6 @@ def update_coupon_collection(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_coupons(
@@ -446,10 +428,6 @@ def create_coupons(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -535,10 +513,6 @@ async def get_coupon_collections(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_coupon_collection(
@@ -628,10 +602,6 @@ async def create_coupon_collection(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_coupon_collection(
@@ -702,10 +672,6 @@ async def get_coupon_collection(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_coupon_collection(
@@ -794,10 +760,6 @@ async def update_coupon_collection(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_coupons(
@@ -874,8 +836,4 @@ async def create_coupons(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/custom_objects/raw_client.py b/src/brevo/custom_objects/raw_client.py
index 9c6201f..35e84e8 100644
--- a/src/brevo/custom_objects/raw_client.py
+++ b/src/brevo/custom_objects/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -23,7 +22,6 @@
from .types.getrecords_response import GetrecordsResponse
from .types.upsertrecords_request_records_item import UpsertrecordsRequestRecordsItem
from .types.upsertrecords_response import UpsertrecordsResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -149,10 +147,6 @@ def upsertrecords(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def getrecords(
@@ -263,10 +257,6 @@ def getrecords(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def batch_delete_object_records(
@@ -368,10 +358,6 @@ def batch_delete_object_records(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -495,10 +481,6 @@ async def upsertrecords(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def getrecords(
@@ -609,10 +591,6 @@ async def getrecords(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def batch_delete_object_records(
@@ -714,8 +692,4 @@ async def batch_delete_object_records(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/deals/raw_client.py b/src/brevo/deals/raw_client.py
index f241764..00a9841 100644
--- a/src/brevo/deals/raw_client.py
+++ b/src/brevo/deals/raw_client.py
@@ -9,7 +9,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -22,7 +21,6 @@
from .types.get_crm_deals_response import GetCrmDealsResponse
from .types.post_crm_deals_import_response import PostCrmDealsImportResponse
from .types.post_crm_deals_response import PostCrmDealsResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -64,10 +62,6 @@ def get_deal_attributes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_all_deals(
@@ -157,10 +151,6 @@ def get_all_deals(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_a_deal(
@@ -234,10 +224,6 @@ def create_a_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def import_deals_creation_and_updation(
@@ -308,10 +294,6 @@ def import_deals_creation_and_updation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def link_and_unlink_a_deal_with_contacts_and_companies(
@@ -380,10 +362,6 @@ def link_and_unlink_a_deal_with_contacts_and_companies(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_a_deal(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Deal]:
@@ -440,10 +418,6 @@ def get_a_deal(self, id: str, *, request_options: typing.Optional[RequestOptions
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_deal(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
@@ -492,10 +466,6 @@ def delete_a_deal(self, id: str, *, request_options: typing.Optional[RequestOpti
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_a_deal(
@@ -575,10 +545,6 @@ def update_a_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_pipeline_stages(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Pipeline]:
@@ -613,10 +579,6 @@ def get_pipeline_stages(self, *, request_options: typing.Optional[RequestOptions
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_all_pipelines(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Pipelines]:
@@ -660,10 +622,6 @@ def get_all_pipelines(self, *, request_options: typing.Optional[RequestOptions]
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_a_pipeline(
@@ -711,10 +669,6 @@ def get_a_pipeline(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -754,10 +708,6 @@ async def get_deal_attributes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_all_deals(
@@ -847,10 +797,6 @@ async def get_all_deals(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_a_deal(
@@ -924,10 +870,6 @@ async def create_a_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def import_deals_creation_and_updation(
@@ -998,10 +940,6 @@ async def import_deals_creation_and_updation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def link_and_unlink_a_deal_with_contacts_and_companies(
@@ -1070,10 +1008,6 @@ async def link_and_unlink_a_deal_with_contacts_and_companies(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_a_deal(
@@ -1132,10 +1066,6 @@ async def get_a_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_deal(
@@ -1186,10 +1116,6 @@ async def delete_a_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_a_deal(
@@ -1269,10 +1195,6 @@ async def update_a_deal(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_pipeline_stages(
@@ -1309,10 +1231,6 @@ async def get_pipeline_stages(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_all_pipelines(
@@ -1358,10 +1276,6 @@ async def get_all_pipelines(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_a_pipeline(
@@ -1409,8 +1323,4 @@ async def get_a_pipeline(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/domains/raw_client.py b/src/brevo/domains/raw_client.py
index 92a3888..4da2fb2 100644
--- a/src/brevo/domains/raw_client.py
+++ b/src/brevo/domains/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -16,7 +15,6 @@
from .types.create_domain_response import CreateDomainResponse
from .types.get_domain_configuration_response import GetDomainConfigurationResponse
from .types.get_domains_response import GetDomainsResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -85,10 +83,6 @@ def get_domains(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_domain(
@@ -158,10 +152,6 @@ def create_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_domain_configuration(
@@ -234,10 +224,6 @@ def get_domain_configuration(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_domain(
@@ -299,10 +285,6 @@ def delete_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def authenticate_domain(
@@ -374,10 +356,6 @@ def authenticate_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -444,10 +422,6 @@ async def get_domains(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_domain(
@@ -517,10 +491,6 @@ async def create_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_domain_configuration(
@@ -593,10 +563,6 @@ async def get_domain_configuration(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_domain(
@@ -658,10 +624,6 @@ async def delete_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def authenticate_domain(
@@ -733,8 +695,4 @@ async def authenticate_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/ecommerce/client.py b/src/brevo/ecommerce/client.py
index b77cc2b..531db05 100644
--- a/src/brevo/ecommerce/client.py
+++ b/src/brevo/ecommerce/client.py
@@ -624,7 +624,7 @@ def create_order(
Examples
--------
- from brevo import Brevo, OrderProductsItem
+ from brevo import Brevo, OrderProductsItemQuantity
client = Brevo(
api_key="YOUR_API_KEY",
@@ -634,9 +634,8 @@ def create_order(
created_at="2021-07-29T20:59:23.383Z",
id="14",
products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
+ OrderProductsItemQuantity(
+ quantity=10,
)
],
status="completed",
@@ -691,7 +690,7 @@ def create_batch_order(
Examples
--------
- from brevo import Brevo, Order, OrderProductsItem
+ from brevo import Brevo, Order, OrderProductsItemQuantity
client = Brevo(
api_key="YOUR_API_KEY",
@@ -703,9 +702,8 @@ def create_batch_order(
created_at="2021-07-29T20:59:23.383Z",
id="14",
products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
+ OrderProductsItemQuantity(
+ quantity=10,
)
],
status="completed",
@@ -1704,7 +1702,7 @@ async def create_order(
--------
import asyncio
- from brevo import AsyncBrevo, OrderProductsItem
+ from brevo import AsyncBrevo, OrderProductsItemQuantity
client = AsyncBrevo(
api_key="YOUR_API_KEY",
@@ -1717,9 +1715,8 @@ async def main() -> None:
created_at="2021-07-29T20:59:23.383Z",
id="14",
products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
+ OrderProductsItemQuantity(
+ quantity=10,
)
],
status="completed",
@@ -1779,7 +1776,7 @@ async def create_batch_order(
--------
import asyncio
- from brevo import AsyncBrevo, Order, OrderProductsItem
+ from brevo import AsyncBrevo, Order, OrderProductsItemQuantity
client = AsyncBrevo(
api_key="YOUR_API_KEY",
@@ -1794,9 +1791,8 @@ async def main() -> None:
created_at="2021-07-29T20:59:23.383Z",
id="14",
products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
+ OrderProductsItemQuantity(
+ quantity=10,
)
],
status="completed",
diff --git a/src/brevo/ecommerce/raw_client.py b/src/brevo/ecommerce/raw_client.py
index 980bb0c..98b3f07 100644
--- a/src/brevo/ecommerce/raw_client.py
+++ b/src/brevo/ecommerce/raw_client.py
@@ -9,7 +9,6 @@
from ..core.datetime_utils import serialize_datetime
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -55,7 +54,6 @@
from .types.get_products_request_sort import GetProductsRequestSort
from .types.get_products_response import GetProductsResponse
from .types.set_config_display_currency_response import SetConfigDisplayCurrencyResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -152,10 +150,6 @@ def get_categories(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_update_category(
@@ -239,10 +233,6 @@ def create_update_category(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_update_batch_category(
@@ -310,10 +300,6 @@ def create_update_batch_category(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_category_info(
@@ -373,10 +359,6 @@ def get_category_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def activate_the_e_commerce_app(
@@ -427,10 +409,6 @@ def activate_the_e_commerce_app(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows(
@@ -510,10 +488,6 @@ def get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workflow(
@@ -569,10 +543,6 @@ def get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workflow(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow(
@@ -628,10 +598,6 @@ def get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_the_iso4217compliant_display_currency_code_for_your_brevo_account(
@@ -699,10 +665,6 @@ def get_the_iso4217compliant_display_currency_code_for_your_brevo_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def set_config_display_currency(
@@ -791,10 +753,6 @@ def set_config_display_currency(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_orders(
@@ -873,10 +831,6 @@ def get_orders(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_order(
@@ -986,10 +940,6 @@ def create_order(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_batch_order(
@@ -1062,10 +1012,6 @@ def create_batch_order(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_products(
@@ -1190,10 +1136,6 @@ def get_products(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_update_product(
@@ -1316,10 +1258,6 @@ def create_update_product(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_update_batch_products(
@@ -1387,10 +1325,6 @@ def create_update_batch_products(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_product_info(
@@ -1450,10 +1384,6 @@ def get_product_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_product_alert(
@@ -1544,10 +1474,6 @@ def create_product_alert(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1642,10 +1568,6 @@ async def get_categories(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_update_category(
@@ -1729,10 +1651,6 @@ async def create_update_category(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_update_batch_category(
@@ -1800,10 +1718,6 @@ async def create_update_batch_category(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_category_info(
@@ -1863,10 +1777,6 @@ async def get_category_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def activate_the_e_commerce_app(
@@ -1917,10 +1827,6 @@ async def activate_the_e_commerce_app(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows(
@@ -2000,10 +1906,6 @@ async def get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workflow(
@@ -2059,10 +1961,6 @@ async def get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workfl
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow(
@@ -2118,10 +2016,6 @@ async def get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_the_iso4217compliant_display_currency_code_for_your_brevo_account(
@@ -2189,10 +2083,6 @@ async def get_the_iso4217compliant_display_currency_code_for_your_brevo_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def set_config_display_currency(
@@ -2281,10 +2171,6 @@ async def set_config_display_currency(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_orders(
@@ -2363,10 +2249,6 @@ async def get_orders(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_order(
@@ -2476,10 +2358,6 @@ async def create_order(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_batch_order(
@@ -2552,10 +2430,6 @@ async def create_batch_order(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_products(
@@ -2680,10 +2554,6 @@ async def get_products(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_update_product(
@@ -2806,10 +2676,6 @@ async def create_update_product(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_update_batch_products(
@@ -2877,10 +2743,6 @@ async def create_update_batch_products(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_product_info(
@@ -2940,10 +2802,6 @@ async def get_product_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_product_alert(
@@ -3034,8 +2892,4 @@ async def create_product_alert(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/email_campaigns/client.py b/src/brevo/email_campaigns/client.py
index cdd70a4..e85242d 100644
--- a/src/brevo/email_campaigns/client.py
+++ b/src/brevo/email_campaigns/client.py
@@ -366,7 +366,6 @@ def get_email_campaign(
campaign_id: int,
*,
statistics: typing.Optional[GetEmailCampaignRequestStatistics] = None,
- exclude_html_content: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
) -> GetEmailCampaignResponse:
"""
@@ -378,9 +377,6 @@ def get_email_campaign(
statistics : typing.Optional[GetEmailCampaignRequestStatistics]
Filter on type of the statistics required. Example **globalStats** value will only fetch globalStats info of the campaign in returned response.
- exclude_html_content : typing.Optional[bool]
- Use this flag to exclude htmlContent from the response body. If set to **true**, htmlContent field will be returned as empty string in the response body
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -401,10 +397,7 @@ def get_email_campaign(
)
"""
_response = self._raw_client.get_email_campaign(
- campaign_id,
- statistics=statistics,
- exclude_html_content=exclude_html_content,
- request_options=request_options,
+ campaign_id, statistics=statistics, request_options=request_options
)
return _response.data
@@ -1255,7 +1248,6 @@ async def get_email_campaign(
campaign_id: int,
*,
statistics: typing.Optional[GetEmailCampaignRequestStatistics] = None,
- exclude_html_content: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
) -> GetEmailCampaignResponse:
"""
@@ -1267,9 +1259,6 @@ async def get_email_campaign(
statistics : typing.Optional[GetEmailCampaignRequestStatistics]
Filter on type of the statistics required. Example **globalStats** value will only fetch globalStats info of the campaign in returned response.
- exclude_html_content : typing.Optional[bool]
- Use this flag to exclude htmlContent from the response body. If set to **true**, htmlContent field will be returned as empty string in the response body
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1298,10 +1287,7 @@ async def main() -> None:
asyncio.run(main())
"""
_response = await self._raw_client.get_email_campaign(
- campaign_id,
- statistics=statistics,
- exclude_html_content=exclude_html_content,
- request_options=request_options,
+ campaign_id, statistics=statistics, request_options=request_options
)
return _response.data
diff --git a/src/brevo/email_campaigns/raw_client.py b/src/brevo/email_campaigns/raw_client.py
index 406285a..9e7fae3 100644
--- a/src/brevo/email_campaigns/raw_client.py
+++ b/src/brevo/email_campaigns/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -40,7 +39,6 @@
from .types.update_email_campaign_request_sender import UpdateEmailCampaignRequestSender
from .types.update_email_campaign_request_winner_criteria import UpdateEmailCampaignRequestWinnerCriteria
from .types.upload_image_to_gallery_response import UploadImageToGalleryResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -145,10 +143,6 @@ def get_email_campaigns(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_email_campaign(
@@ -370,10 +364,6 @@ def create_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def upload_image_to_gallery(
@@ -437,10 +427,6 @@ def upload_image_to_gallery(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_email_campaign(
@@ -448,7 +434,6 @@ def get_email_campaign(
campaign_id: int,
*,
statistics: typing.Optional[GetEmailCampaignRequestStatistics] = None,
- exclude_html_content: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[GetEmailCampaignResponse]:
"""
@@ -460,9 +445,6 @@ def get_email_campaign(
statistics : typing.Optional[GetEmailCampaignRequestStatistics]
Filter on type of the statistics required. Example **globalStats** value will only fetch globalStats info of the campaign in returned response.
- exclude_html_content : typing.Optional[bool]
- Use this flag to exclude htmlContent from the response body. If set to **true**, htmlContent field will be returned as empty string in the response body
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -476,7 +458,6 @@ def get_email_campaign(
method="GET",
params={
"statistics": statistics,
- "excludeHtmlContent": exclude_html_content,
},
request_options=request_options,
)
@@ -515,10 +496,6 @@ def get_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_email_campaign(
@@ -747,10 +724,6 @@ def update_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_email_campaign(
@@ -802,10 +775,6 @@ def delete_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_ab_test_campaign_result(
@@ -867,10 +836,6 @@ def get_ab_test_campaign_result(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def email_export_recipients(
@@ -949,10 +914,6 @@ def email_export_recipients(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_email_campaign_now(
@@ -1015,10 +976,6 @@ def send_email_campaign_now(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_report(
@@ -1093,10 +1050,6 @@ def send_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_test_email(
@@ -1162,10 +1115,6 @@ def send_test_email(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_shared_template_url(
@@ -1238,10 +1187,6 @@ def get_shared_template_url(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_campaign_status(
@@ -1307,10 +1252,6 @@ def update_campaign_status(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1413,10 +1354,6 @@ async def get_email_campaigns(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_email_campaign(
@@ -1638,10 +1575,6 @@ async def create_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def upload_image_to_gallery(
@@ -1705,10 +1638,6 @@ async def upload_image_to_gallery(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_email_campaign(
@@ -1716,7 +1645,6 @@ async def get_email_campaign(
campaign_id: int,
*,
statistics: typing.Optional[GetEmailCampaignRequestStatistics] = None,
- exclude_html_content: typing.Optional[bool] = None,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[GetEmailCampaignResponse]:
"""
@@ -1728,9 +1656,6 @@ async def get_email_campaign(
statistics : typing.Optional[GetEmailCampaignRequestStatistics]
Filter on type of the statistics required. Example **globalStats** value will only fetch globalStats info of the campaign in returned response.
- exclude_html_content : typing.Optional[bool]
- Use this flag to exclude htmlContent from the response body. If set to **true**, htmlContent field will be returned as empty string in the response body
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1744,7 +1669,6 @@ async def get_email_campaign(
method="GET",
params={
"statistics": statistics,
- "excludeHtmlContent": exclude_html_content,
},
request_options=request_options,
)
@@ -1783,10 +1707,6 @@ async def get_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_email_campaign(
@@ -2015,10 +1935,6 @@ async def update_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_email_campaign(
@@ -2070,10 +1986,6 @@ async def delete_email_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_ab_test_campaign_result(
@@ -2135,10 +2047,6 @@ async def get_ab_test_campaign_result(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def email_export_recipients(
@@ -2217,10 +2125,6 @@ async def email_export_recipients(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_email_campaign_now(
@@ -2283,10 +2187,6 @@ async def send_email_campaign_now(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_report(
@@ -2361,10 +2261,6 @@ async def send_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_test_email(
@@ -2430,10 +2326,6 @@ async def send_test_email(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_shared_template_url(
@@ -2506,10 +2398,6 @@ async def get_shared_template_url(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_campaign_status(
@@ -2575,8 +2463,4 @@ async def update_campaign_status(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/email_campaigns/types/get_email_campaign_response.py b/src/brevo/email_campaigns/types/get_email_campaign_response.py
index a8e3b1b..fa3bdd8 100644
--- a/src/brevo/email_campaigns/types/get_email_campaign_response.py
+++ b/src/brevo/email_campaigns/types/get_email_campaign_response.py
@@ -15,14 +15,6 @@
class GetEmailCampaignResponse(UncheckedBaseModel):
- attachment_file: typing_extensions.Annotated[
- typing.Optional[str],
- FieldMetadata(alias="attachmentFile"),
- pydantic.Field(
- alias="attachmentFile",
- description="Url of the attachment file. Only available if the campaign has an attachment.",
- ),
- ] = None
ab_testing: typing_extensions.Annotated[
typing.Optional[bool],
FieldMetadata(alias="abTesting"),
@@ -198,11 +190,6 @@ class GetEmailCampaignResponse(UncheckedBaseModel):
Tag of the campaign
"""
- tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
- """
- List of tags of the campaign
- """
-
test_sent: typing_extensions.Annotated[
bool,
FieldMetadata(alias="testSent"),
diff --git a/src/brevo/email_campaigns/types/get_email_campaign_response_status.py b/src/brevo/email_campaigns/types/get_email_campaign_response_status.py
index 0f7474e..090cb9b 100644
--- a/src/brevo/email_campaigns/types/get_email_campaign_response_status.py
+++ b/src/brevo/email_campaigns/types/get_email_campaign_response_status.py
@@ -3,8 +3,5 @@
import typing
GetEmailCampaignResponseStatus = typing.Union[
- typing.Literal[
- "draft", "sent", "archive", "queued", "suspended", "in_process", "in_review", "cancelling", "cancelled"
- ],
- typing.Any,
+ typing.Literal["draft", "sent", "archive", "queued", "suspended", "in_process"], typing.Any
]
diff --git a/src/brevo/email_campaigns/types/get_email_campaigns_request_status.py b/src/brevo/email_campaigns/types/get_email_campaigns_request_status.py
index a202474..540a22b 100644
--- a/src/brevo/email_campaigns/types/get_email_campaigns_request_status.py
+++ b/src/brevo/email_campaigns/types/get_email_campaigns_request_status.py
@@ -3,8 +3,5 @@
import typing
GetEmailCampaignsRequestStatus = typing.Union[
- typing.Literal[
- "suspended", "archive", "sent", "queued", "draft", "inProcess", "inReview", "cancelling", "cancelled"
- ],
- typing.Any,
+ typing.Literal["suspended", "archive", "sent", "queued", "draft", "inProcess", "inReview"], typing.Any
]
diff --git a/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item.py b/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item.py
index c20b183..4a4a426 100644
--- a/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item.py
+++ b/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item.py
@@ -15,14 +15,6 @@
class GetEmailCampaignsResponseCampaignsItem(UncheckedBaseModel):
- attachment_file: typing_extensions.Annotated[
- typing.Optional[str],
- FieldMetadata(alias="attachmentFile"),
- pydantic.Field(
- alias="attachmentFile",
- description="Url of the attachment file. Only available if the campaign has an attachment.",
- ),
- ] = None
ab_testing: typing_extensions.Annotated[
typing.Optional[bool],
FieldMetadata(alias="abTesting"),
@@ -198,11 +190,6 @@ class GetEmailCampaignsResponseCampaignsItem(UncheckedBaseModel):
Tag of the campaign
"""
- tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
- """
- List of tags of the campaign
- """
-
test_sent: typing_extensions.Annotated[
bool,
FieldMetadata(alias="testSent"),
diff --git a/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item_status.py b/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item_status.py
index 46d1706..1a7bb9a 100644
--- a/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item_status.py
+++ b/src/brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item_status.py
@@ -3,8 +3,5 @@
import typing
GetEmailCampaignsResponseCampaignsItemStatus = typing.Union[
- typing.Literal[
- "draft", "sent", "archive", "queued", "suspended", "in_process", "in_review", "cancelling", "cancelled"
- ],
- typing.Any,
+ typing.Literal["draft", "sent", "archive", "queued", "suspended", "in_process"], typing.Any
]
diff --git a/src/brevo/event/__init__.py b/src/brevo/event/__init__.py
index d34bb1a..5e3c63f 100644
--- a/src/brevo/event/__init__.py
+++ b/src/brevo/event/__init__.py
@@ -7,12 +7,6 @@
if typing.TYPE_CHECKING:
from .types import (
- CreateBatchEventsRequestItem,
- CreateBatchEventsRequestItemContactPropertiesValue,
- CreateBatchEventsRequestItemEventPropertiesValue,
- CreateBatchEventsRequestItemIdentifiers,
- CreateBatchEventsRequestItemObject,
- CreateBatchEventsRequestItemObjectIdentifiers,
CreateEventRequestContactPropertiesValue,
CreateEventRequestEventPropertiesValue,
CreateEventRequestIdentifiers,
@@ -20,12 +14,6 @@
CreateEventRequestObjectIdentifiers,
)
_dynamic_imports: typing.Dict[str, str] = {
- "CreateBatchEventsRequestItem": ".types",
- "CreateBatchEventsRequestItemContactPropertiesValue": ".types",
- "CreateBatchEventsRequestItemEventPropertiesValue": ".types",
- "CreateBatchEventsRequestItemIdentifiers": ".types",
- "CreateBatchEventsRequestItemObject": ".types",
- "CreateBatchEventsRequestItemObjectIdentifiers": ".types",
"CreateEventRequestContactPropertiesValue": ".types",
"CreateEventRequestEventPropertiesValue": ".types",
"CreateEventRequestIdentifiers": ".types",
@@ -56,12 +44,6 @@ def __dir__():
__all__ = [
- "CreateBatchEventsRequestItem",
- "CreateBatchEventsRequestItemContactPropertiesValue",
- "CreateBatchEventsRequestItemEventPropertiesValue",
- "CreateBatchEventsRequestItemIdentifiers",
- "CreateBatchEventsRequestItemObject",
- "CreateBatchEventsRequestItemObjectIdentifiers",
"CreateEventRequestContactPropertiesValue",
"CreateEventRequestEventPropertiesValue",
"CreateEventRequestIdentifiers",
diff --git a/src/brevo/event/client.py b/src/brevo/event/client.py
index 6218fc9..2506571 100644
--- a/src/brevo/event/client.py
+++ b/src/brevo/event/client.py
@@ -5,7 +5,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.request_options import RequestOptions
from .raw_client import AsyncRawEventClient, RawEventClient
-from .types.create_batch_events_request_item import CreateBatchEventsRequestItem
from .types.create_event_request_contact_properties_value import CreateEventRequestContactPropertiesValue
from .types.create_event_request_event_properties_value import CreateEventRequestEventPropertiesValue
from .types.create_event_request_identifiers import CreateEventRequestIdentifiers
@@ -95,49 +94,6 @@ def create_event(
)
return _response.data
- def create_batch_events(
- self,
- *,
- request: typing.Sequence[CreateBatchEventsRequestItem],
- request_options: typing.Optional[RequestOptions] = None,
- ) -> None:
- """
- Create multiple events to track contacts' interactions in a single request.
-
- Parameters
- ----------
- request : typing.Sequence[CreateBatchEventsRequestItem]
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- None
-
- Examples
- --------
- from brevo import Brevo
- from brevo.event import (
- CreateBatchEventsRequestItem,
- CreateBatchEventsRequestItemIdentifiers,
- )
-
- client = Brevo(
- api_key="YOUR_API_KEY",
- )
- client.event.create_batch_events(
- request=[
- CreateBatchEventsRequestItem(
- event_name="order_created",
- identifiers=CreateBatchEventsRequestItemIdentifiers(),
- )
- ],
- )
- """
- _response = self._raw_client.create_batch_events(request=request, request_options=request_options)
- return _response.data
-
class AsyncEventClient:
def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -226,54 +182,3 @@ async def main() -> None:
request_options=request_options,
)
return _response.data
-
- async def create_batch_events(
- self,
- *,
- request: typing.Sequence[CreateBatchEventsRequestItem],
- request_options: typing.Optional[RequestOptions] = None,
- ) -> None:
- """
- Create multiple events to track contacts' interactions in a single request.
-
- Parameters
- ----------
- request : typing.Sequence[CreateBatchEventsRequestItem]
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- None
-
- Examples
- --------
- import asyncio
-
- from brevo import AsyncBrevo
- from brevo.event import (
- CreateBatchEventsRequestItem,
- CreateBatchEventsRequestItemIdentifiers,
- )
-
- client = AsyncBrevo(
- api_key="YOUR_API_KEY",
- )
-
-
- async def main() -> None:
- await client.event.create_batch_events(
- request=[
- CreateBatchEventsRequestItem(
- event_name="order_created",
- identifiers=CreateBatchEventsRequestItemIdentifiers(),
- )
- ],
- )
-
-
- asyncio.run(main())
- """
- _response = await self._raw_client.create_batch_events(request=request, request_options=request_options)
- return _response.data
diff --git a/src/brevo/event/raw_client.py b/src/brevo/event/raw_client.py
index 2e56671..545985c 100644
--- a/src/brevo/event/raw_client.py
+++ b/src/brevo/event/raw_client.py
@@ -6,18 +6,15 @@
from ..core.api_error import ApiError
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
from ..errors.unauthorized_error import UnauthorizedError
-from .types.create_batch_events_request_item import CreateBatchEventsRequestItem
from .types.create_event_request_contact_properties_value import CreateEventRequestContactPropertiesValue
from .types.create_event_request_event_properties_value import CreateEventRequestEventPropertiesValue
from .types.create_event_request_identifiers import CreateEventRequestIdentifiers
from .types.create_event_request_object import CreateEventRequestObject
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -125,76 +122,6 @@ def create_event(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
-
- def create_batch_events(
- self,
- *,
- request: typing.Sequence[CreateBatchEventsRequestItem],
- request_options: typing.Optional[RequestOptions] = None,
- ) -> HttpResponse[None]:
- """
- Create multiple events to track contacts' interactions in a single request.
-
- Parameters
- ----------
- request : typing.Sequence[CreateBatchEventsRequestItem]
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- HttpResponse[None]
- """
- _response = self._client_wrapper.httpx_client.request(
- "events/batch",
- method="POST",
- json=convert_and_respect_annotation_metadata(
- object_=request, annotation=typing.Sequence[CreateBatchEventsRequestItem], direction="write"
- ),
- headers={
- "content-type": "application/json",
- },
- request_options=request_options,
- omit=OMIT,
- )
- try:
- if 200 <= _response.status_code < 300:
- return HttpResponse(response=_response, data=None)
- if _response.status_code == 400:
- raise BadRequestError(
- headers=dict(_response.headers),
- body=typing.cast(
- typing.Any,
- construct_type(
- type_=typing.Any, # type: ignore
- object_=_response.json(),
- ),
- ),
- )
- if _response.status_code == 401:
- raise UnauthorizedError(
- headers=dict(_response.headers),
- body=typing.cast(
- typing.Any,
- construct_type(
- type_=typing.Any, # type: ignore
- object_=_response.json(),
- ),
- ),
- )
- _response_json = _response.json()
- except JSONDecodeError:
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -300,74 +227,4 @@ async def create_event(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
-
- async def create_batch_events(
- self,
- *,
- request: typing.Sequence[CreateBatchEventsRequestItem],
- request_options: typing.Optional[RequestOptions] = None,
- ) -> AsyncHttpResponse[None]:
- """
- Create multiple events to track contacts' interactions in a single request.
-
- Parameters
- ----------
- request : typing.Sequence[CreateBatchEventsRequestItem]
-
- request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
- Returns
- -------
- AsyncHttpResponse[None]
- """
- _response = await self._client_wrapper.httpx_client.request(
- "events/batch",
- method="POST",
- json=convert_and_respect_annotation_metadata(
- object_=request, annotation=typing.Sequence[CreateBatchEventsRequestItem], direction="write"
- ),
- headers={
- "content-type": "application/json",
- },
- request_options=request_options,
- omit=OMIT,
- )
- try:
- if 200 <= _response.status_code < 300:
- return AsyncHttpResponse(response=_response, data=None)
- if _response.status_code == 400:
- raise BadRequestError(
- headers=dict(_response.headers),
- body=typing.cast(
- typing.Any,
- construct_type(
- type_=typing.Any, # type: ignore
- object_=_response.json(),
- ),
- ),
- )
- if _response.status_code == 401:
- raise UnauthorizedError(
- headers=dict(_response.headers),
- body=typing.cast(
- typing.Any,
- construct_type(
- type_=typing.Any, # type: ignore
- object_=_response.json(),
- ),
- ),
- )
- _response_json = _response.json()
- except JSONDecodeError:
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/event/types/__init__.py b/src/brevo/event/types/__init__.py
index 4756a15..7699b97 100644
--- a/src/brevo/event/types/__init__.py
+++ b/src/brevo/event/types/__init__.py
@@ -6,28 +6,12 @@
from importlib import import_module
if typing.TYPE_CHECKING:
- from .create_batch_events_request_item import CreateBatchEventsRequestItem
- from .create_batch_events_request_item_contact_properties_value import (
- CreateBatchEventsRequestItemContactPropertiesValue,
- )
- from .create_batch_events_request_item_event_properties_value import (
- CreateBatchEventsRequestItemEventPropertiesValue,
- )
- from .create_batch_events_request_item_identifiers import CreateBatchEventsRequestItemIdentifiers
- from .create_batch_events_request_item_object import CreateBatchEventsRequestItemObject
- from .create_batch_events_request_item_object_identifiers import CreateBatchEventsRequestItemObjectIdentifiers
from .create_event_request_contact_properties_value import CreateEventRequestContactPropertiesValue
from .create_event_request_event_properties_value import CreateEventRequestEventPropertiesValue
from .create_event_request_identifiers import CreateEventRequestIdentifiers
from .create_event_request_object import CreateEventRequestObject
from .create_event_request_object_identifiers import CreateEventRequestObjectIdentifiers
_dynamic_imports: typing.Dict[str, str] = {
- "CreateBatchEventsRequestItem": ".create_batch_events_request_item",
- "CreateBatchEventsRequestItemContactPropertiesValue": ".create_batch_events_request_item_contact_properties_value",
- "CreateBatchEventsRequestItemEventPropertiesValue": ".create_batch_events_request_item_event_properties_value",
- "CreateBatchEventsRequestItemIdentifiers": ".create_batch_events_request_item_identifiers",
- "CreateBatchEventsRequestItemObject": ".create_batch_events_request_item_object",
- "CreateBatchEventsRequestItemObjectIdentifiers": ".create_batch_events_request_item_object_identifiers",
"CreateEventRequestContactPropertiesValue": ".create_event_request_contact_properties_value",
"CreateEventRequestEventPropertiesValue": ".create_event_request_event_properties_value",
"CreateEventRequestIdentifiers": ".create_event_request_identifiers",
@@ -58,12 +42,6 @@ def __dir__():
__all__ = [
- "CreateBatchEventsRequestItem",
- "CreateBatchEventsRequestItemContactPropertiesValue",
- "CreateBatchEventsRequestItemEventPropertiesValue",
- "CreateBatchEventsRequestItemIdentifiers",
- "CreateBatchEventsRequestItemObject",
- "CreateBatchEventsRequestItemObjectIdentifiers",
"CreateEventRequestContactPropertiesValue",
"CreateEventRequestEventPropertiesValue",
"CreateEventRequestIdentifiers",
diff --git a/src/brevo/event/types/create_batch_events_request_item.py b/src/brevo/event/types/create_batch_events_request_item.py
deleted file mode 100644
index c4f0679..0000000
--- a/src/brevo/event/types/create_batch_events_request_item.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-import pydantic
-from ...core.pydantic_utilities import IS_PYDANTIC_V2
-from ...core.unchecked_base_model import UncheckedBaseModel
-from .create_batch_events_request_item_contact_properties_value import (
- CreateBatchEventsRequestItemContactPropertiesValue,
-)
-from .create_batch_events_request_item_event_properties_value import CreateBatchEventsRequestItemEventPropertiesValue
-from .create_batch_events_request_item_identifiers import CreateBatchEventsRequestItemIdentifiers
-from .create_batch_events_request_item_object import CreateBatchEventsRequestItemObject
-
-
-class CreateBatchEventsRequestItem(UncheckedBaseModel):
- contact_properties: typing.Optional[typing.Dict[str, CreateBatchEventsRequestItemContactPropertiesValue]] = (
- pydantic.Field(default=None)
- )
- """
- Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. For example: **"FIRSTNAME": "Jane" , "AGE": 37**
- """
-
- event_date: typing.Optional[str] = pydantic.Field(default=None)
- """
- Timestamp of when the event occurred (e.g. "2024-01-24T17:39:57+01:00"). If no value is passed, the timestamp of the event creation is used.
- """
-
- event_name: str = pydantic.Field()
- """
- The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters, alphanumerical characters and - _ only.
- """
-
- event_properties: typing.Optional[typing.Dict[str, CreateBatchEventsRequestItemEventPropertiesValue]] = (
- pydantic.Field(default=None)
- )
- """
- Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field type are supported: string, number, boolean (true/false), date (Timestamp e.g. "2024-01-24T17:39:57+01:00"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50Kb.
- """
-
- identifiers: CreateBatchEventsRequestItemIdentifiers = pydantic.Field()
- """
- Identifies the contact associated with the event. At least one identifier is required.
- """
-
- object: typing.Optional[CreateBatchEventsRequestItemObject] = pydantic.Field(default=None)
- """
- Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
- """
-
- if IS_PYDANTIC_V2:
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
- else:
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic.Extra.allow
diff --git a/src/brevo/event/types/create_batch_events_request_item_contact_properties_value.py b/src/brevo/event/types/create_batch_events_request_item_contact_properties_value.py
deleted file mode 100644
index 5169839..0000000
--- a/src/brevo/event/types/create_batch_events_request_item_contact_properties_value.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateBatchEventsRequestItemContactPropertiesValue = typing.Union[str, int]
diff --git a/src/brevo/event/types/create_batch_events_request_item_event_properties_value.py b/src/brevo/event/types/create_batch_events_request_item_event_properties_value.py
deleted file mode 100644
index c7fbc77..0000000
--- a/src/brevo/event/types/create_batch_events_request_item_event_properties_value.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-CreateBatchEventsRequestItemEventPropertiesValue = typing.Union[
- str, int, typing.Dict[str, typing.Any], typing.List[typing.Any]
-]
diff --git a/src/brevo/event/types/create_batch_events_request_item_identifiers.py b/src/brevo/event/types/create_batch_events_request_item_identifiers.py
deleted file mode 100644
index 10b9844..0000000
--- a/src/brevo/event/types/create_batch_events_request_item_identifiers.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-import pydantic
-from ...core.pydantic_utilities import IS_PYDANTIC_V2
-from ...core.unchecked_base_model import UncheckedBaseModel
-
-
-class CreateBatchEventsRequestItemIdentifiers(UncheckedBaseModel):
- """
- Identifies the contact associated with the event. At least one identifier is required.
- """
-
- contact_id: typing.Optional[int] = pydantic.Field(default=None)
- """
- Internal unique contact ID. When present, this takes priority over all other identifiers for event attribution and contact resolution.
- """
-
- email_id: typing.Optional[str] = pydantic.Field(default=None)
- """
- Email Id associated with the event
- """
-
- ext_id: typing.Optional[str] = pydantic.Field(default=None)
- """
- ext_id associated with the event
- """
-
- landline_number_id: typing.Optional[str] = pydantic.Field(default=None)
- """
- landline_number associated with the event
- """
-
- phone_id: typing.Optional[str] = pydantic.Field(default=None)
- """
- SMS associated with the event
- """
-
- whatsapp_id: typing.Optional[str] = pydantic.Field(default=None)
- """
- whatsapp associated with the event
- """
-
- if IS_PYDANTIC_V2:
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
- else:
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic.Extra.allow
diff --git a/src/brevo/event/types/create_batch_events_request_item_object.py b/src/brevo/event/types/create_batch_events_request_item_object.py
deleted file mode 100644
index 82f513b..0000000
--- a/src/brevo/event/types/create_batch_events_request_item_object.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-import pydantic
-from ...core.pydantic_utilities import IS_PYDANTIC_V2
-from ...core.unchecked_base_model import UncheckedBaseModel
-from .create_batch_events_request_item_object_identifiers import CreateBatchEventsRequestItemObjectIdentifiers
-
-
-class CreateBatchEventsRequestItemObject(UncheckedBaseModel):
- """
- Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
- """
-
- identifiers: typing.Optional[CreateBatchEventsRequestItemObjectIdentifiers] = pydantic.Field(default=None)
- """
- Identifiers for the object.
- """
-
- type: typing.Optional[str] = pydantic.Field(default=None)
- """
- Type of object (e.g., subscription, vehicle, etc.)
- """
-
- if IS_PYDANTIC_V2:
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
- else:
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic.Extra.allow
diff --git a/src/brevo/event/types/create_batch_events_request_item_object_identifiers.py b/src/brevo/event/types/create_batch_events_request_item_object_identifiers.py
deleted file mode 100644
index 7e3278d..0000000
--- a/src/brevo/event/types/create_batch_events_request_item_object_identifiers.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-import pydantic
-from ...core.pydantic_utilities import IS_PYDANTIC_V2
-from ...core.unchecked_base_model import UncheckedBaseModel
-
-
-class CreateBatchEventsRequestItemObjectIdentifiers(UncheckedBaseModel):
- """
- Identifiers for the object.
- """
-
- ext_id: typing.Optional[str] = pydantic.Field(default=None)
- """
- External object ID
- """
-
- id: typing.Optional[str] = pydantic.Field(default=None)
- """
- Internal object ID
- """
-
- if IS_PYDANTIC_V2:
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
- else:
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic.Extra.allow
diff --git a/src/brevo/external_feeds/raw_client.py b/src/brevo/external_feeds/raw_client.py
index 1e88994..620767a 100644
--- a/src/brevo/external_feeds/raw_client.py
+++ b/src/brevo/external_feeds/raw_client.py
@@ -8,7 +8,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -23,7 +22,6 @@
from .types.get_external_feed_by_uuid_response import GetExternalFeedByUuidResponse
from .types.update_external_feed_request_auth_type import UpdateExternalFeedRequestAuthType
from .types.update_external_feed_request_headers_item import UpdateExternalFeedRequestHeadersItem
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -157,10 +155,6 @@ def get_all_external_feeds(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_external_feed(
@@ -283,10 +277,6 @@ def create_external_feed(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_external_feed_by_uuid(
@@ -369,10 +359,6 @@ def get_external_feed_by_uuid(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_external_feed(
@@ -499,10 +485,6 @@ def update_external_feed(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_external_feed(
@@ -572,10 +554,6 @@ def delete_external_feed(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -707,10 +685,6 @@ async def get_all_external_feeds(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_external_feed(
@@ -833,10 +807,6 @@ async def create_external_feed(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_external_feed_by_uuid(
@@ -919,10 +889,6 @@ async def get_external_feed_by_uuid(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_external_feed(
@@ -1049,10 +1015,6 @@ async def update_external_feed(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_external_feed(
@@ -1122,8 +1084,4 @@ async def delete_external_feed(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/files/raw_client.py b/src/brevo/files/raw_client.py
index 1f292fa..e303b4c 100644
--- a/src/brevo/files/raw_client.py
+++ b/src/brevo/files/raw_client.py
@@ -8,7 +8,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -17,7 +16,6 @@
from .types.get_crm_files_id_response import GetCrmFilesIdResponse
from .types.get_crm_files_request_entity import GetCrmFilesRequestEntity
from .types.get_crm_files_request_sort import GetCrmFilesRequestSort
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -109,10 +107,6 @@ def get_all_files(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def upload_a_file(
@@ -183,10 +177,6 @@ def upload_a_file(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def download_a_file(
@@ -246,10 +236,6 @@ def download_a_file(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_file(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
@@ -299,10 +285,6 @@ def delete_a_file(self, id: str, *, request_options: typing.Optional[RequestOpti
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_file_details(
@@ -362,10 +344,6 @@ def get_file_details(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -455,10 +433,6 @@ async def get_all_files(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def upload_a_file(
@@ -529,10 +503,6 @@ async def upload_a_file(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def download_a_file(
@@ -592,10 +562,6 @@ async def download_a_file(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_file(
@@ -647,10 +613,6 @@ async def delete_a_file(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_file_details(
@@ -710,8 +672,4 @@ async def get_file_details(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/inbound_parsing/raw_client.py b/src/brevo/inbound_parsing/raw_client.py
index 2781da0..3f57882 100644
--- a/src/brevo/inbound_parsing/raw_client.py
+++ b/src/brevo/inbound_parsing/raw_client.py
@@ -8,7 +8,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -16,7 +15,6 @@
from .types.get_inbound_email_events_by_uuid_response import GetInboundEmailEventsByUuidResponse
from .types.get_inbound_email_events_request_sort import GetInboundEmailEventsRequestSort
from .types.get_inbound_email_events_response import GetInboundEmailEventsResponse
-from pydantic import ValidationError
class RawInboundParsingClient:
@@ -102,10 +100,6 @@ def get_inbound_email_events(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_inbound_email_events_by_uuid(
@@ -156,10 +150,6 @@ def get_inbound_email_events_by_uuid(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@contextlib.contextmanager
@@ -223,13 +213,6 @@ def _stream() -> HttpResponse[typing.Iterator[bytes]]:
raise ApiError(
status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code,
- headers=dict(_response.headers),
- body=_response.json(),
- cause=e,
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
yield _stream()
@@ -318,10 +301,6 @@ async def get_inbound_email_events(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_inbound_email_events_by_uuid(
@@ -372,10 +351,6 @@ async def get_inbound_email_events_by_uuid(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@contextlib.asynccontextmanager
@@ -440,13 +415,6 @@ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[bytes]]:
raise ApiError(
status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code,
- headers=dict(_response.headers),
- body=_response.json(),
- cause=e,
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
yield await _stream()
diff --git a/src/brevo/master_account/raw_client.py b/src/brevo/master_account/raw_client.py
index 5d19024..a124dbd 100644
--- a/src/brevo/master_account/raw_client.py
+++ b/src/brevo/master_account/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -41,7 +40,6 @@
PutCorporateUserInvitationActionEmailRequestAction,
)
from .types.put_corporate_user_invitation_action_email_response import PutCorporateUserInvitationActionEmailResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -114,10 +112,6 @@ def create_a_new_group_of_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_sub_account_from_group(
@@ -174,10 +168,6 @@ def delete_sub_account_from_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_a_group_details(
@@ -218,10 +208,6 @@ def get_a_group_details(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_a_group_of_sub_accounts(
@@ -283,10 +269,6 @@ def update_a_group_of_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_group(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
@@ -330,10 +312,6 @@ def delete_a_group(self, id: str, *, request_options: typing.Optional[RequestOpt
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_sub_account_groups(
@@ -370,10 +348,6 @@ def get_sub_account_groups(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_corporate_invited_users_list(
@@ -434,10 +408,6 @@ def get_corporate_invited_users_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def list_of_all_i_ps(
@@ -475,10 +445,6 @@ def list_of_all_i_ps(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_the_details_of_requested_master_account(
@@ -526,10 +492,6 @@ def get_the_details_of_requested_master_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def generate_sso_token_to_access_admin_account(
@@ -601,10 +563,6 @@ def generate_sso_token_to_access_admin_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_the_list_of_all_the_sub_accounts_of_the_master_account(
@@ -663,10 +621,6 @@ def get_the_list_of_all_the_sub_accounts_of_the_master_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_a_new_sub_account_under_a_master_account(
@@ -747,10 +701,6 @@ def create_a_new_sub_account_under_a_master_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def associate_an_ip_to_sub_accounts(
@@ -813,10 +763,6 @@ def associate_an_ip_to_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def dissociate_an_ip_to_sub_accounts(
@@ -871,10 +817,6 @@ def dissociate_an_ip_to_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_an_api_key_for_a_sub_account(
@@ -936,10 +878,6 @@ def create_an_api_key_for_a_sub_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def generate_sso_token_to_access_sub_account(
@@ -1038,10 +976,6 @@ def generate_sso_token_to_access_sub_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_sub_account_details(
@@ -1092,10 +1026,6 @@ def get_sub_account_details(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_sub_account(
@@ -1147,10 +1077,6 @@ def delete_a_sub_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def enable_disable_sub_account_application_s(
@@ -1289,10 +1215,6 @@ def enable_disable_sub_account_application_s(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_sub_account_plan(
@@ -1372,10 +1294,6 @@ def update_sub_account_plan(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_sub_accounts_plan(
@@ -1456,10 +1374,6 @@ def update_sub_accounts_plan(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def invite_admin_user(
@@ -1563,10 +1477,6 @@ def invite_admin_user(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def resend_cancel_admin_user_invitation(
@@ -1626,10 +1536,6 @@ def resend_cancel_admin_user_invitation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def revoke_an_admin_user(
@@ -1673,10 +1579,6 @@ def revoke_an_admin_user(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_corporate_user_permission(
@@ -1727,10 +1629,6 @@ def get_corporate_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def change_admin_user_permissions(
@@ -1796,10 +1694,6 @@ def change_admin_user_permissions(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1870,10 +1764,6 @@ async def create_a_new_group_of_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_sub_account_from_group(
@@ -1930,10 +1820,6 @@ async def delete_sub_account_from_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_a_group_details(
@@ -1974,10 +1860,6 @@ async def get_a_group_details(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_a_group_of_sub_accounts(
@@ -2039,10 +1921,6 @@ async def update_a_group_of_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_group(
@@ -2088,10 +1966,6 @@ async def delete_a_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_sub_account_groups(
@@ -2128,10 +2002,6 @@ async def get_sub_account_groups(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_corporate_invited_users_list(
@@ -2192,10 +2062,6 @@ async def get_corporate_invited_users_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def list_of_all_i_ps(
@@ -2233,10 +2099,6 @@ async def list_of_all_i_ps(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_the_details_of_requested_master_account(
@@ -2284,10 +2146,6 @@ async def get_the_details_of_requested_master_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def generate_sso_token_to_access_admin_account(
@@ -2359,10 +2217,6 @@ async def generate_sso_token_to_access_admin_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_the_list_of_all_the_sub_accounts_of_the_master_account(
@@ -2421,10 +2275,6 @@ async def get_the_list_of_all_the_sub_accounts_of_the_master_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_a_new_sub_account_under_a_master_account(
@@ -2505,10 +2355,6 @@ async def create_a_new_sub_account_under_a_master_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def associate_an_ip_to_sub_accounts(
@@ -2571,10 +2417,6 @@ async def associate_an_ip_to_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def dissociate_an_ip_to_sub_accounts(
@@ -2629,10 +2471,6 @@ async def dissociate_an_ip_to_sub_accounts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_an_api_key_for_a_sub_account(
@@ -2694,10 +2532,6 @@ async def create_an_api_key_for_a_sub_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def generate_sso_token_to_access_sub_account(
@@ -2796,10 +2630,6 @@ async def generate_sso_token_to_access_sub_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_sub_account_details(
@@ -2850,10 +2680,6 @@ async def get_sub_account_details(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_sub_account(
@@ -2905,10 +2731,6 @@ async def delete_a_sub_account(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def enable_disable_sub_account_application_s(
@@ -3047,10 +2869,6 @@ async def enable_disable_sub_account_application_s(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_sub_account_plan(
@@ -3130,10 +2948,6 @@ async def update_sub_account_plan(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_sub_accounts_plan(
@@ -3214,10 +3028,6 @@ async def update_sub_accounts_plan(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def invite_admin_user(
@@ -3321,10 +3131,6 @@ async def invite_admin_user(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def resend_cancel_admin_user_invitation(
@@ -3384,10 +3190,6 @@ async def resend_cancel_admin_user_invitation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def revoke_an_admin_user(
@@ -3431,10 +3233,6 @@ async def revoke_an_admin_user(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_corporate_user_permission(
@@ -3485,10 +3283,6 @@ async def get_corporate_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def change_admin_user_permissions(
@@ -3554,8 +3348,4 @@ async def change_admin_user_permissions(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/notes/raw_client.py b/src/brevo/notes/raw_client.py
index 885b1b9..5f48297 100644
--- a/src/brevo/notes/raw_client.py
+++ b/src/brevo/notes/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -18,7 +17,6 @@
from .types.get_crm_notes_request_entity import GetCrmNotesRequestEntity
from .types.get_crm_notes_request_sort import GetCrmNotesRequestSort
from .types.post_crm_notes_response import PostCrmNotesResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -110,10 +108,6 @@ def get_all_notes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_a_note(
@@ -198,10 +192,6 @@ def create_a_note(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_a_note(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Note]:
@@ -259,10 +249,6 @@ def get_a_note(self, id: str, *, request_options: typing.Optional[RequestOptions
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_note(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
@@ -312,10 +298,6 @@ def delete_a_note(self, id: str, *, request_options: typing.Optional[RequestOpti
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_a_note(
@@ -407,10 +389,6 @@ def update_a_note(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -500,10 +478,6 @@ async def get_all_notes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_a_note(
@@ -588,10 +562,6 @@ async def create_a_note(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_a_note(
@@ -651,10 +621,6 @@ async def get_a_note(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_note(
@@ -706,10 +672,6 @@ async def delete_a_note(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_a_note(
@@ -801,8 +763,4 @@ async def update_a_note(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/payments/raw_client.py b/src/brevo/payments/raw_client.py
index 421880d..7bdcd1c 100644
--- a/src/brevo/payments/raw_client.py
+++ b/src/brevo/payments/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -20,7 +19,6 @@
from ..types.notification import Notification
from .types.create_payment_request_response import CreatePaymentRequestResponse
from .types.get_payment_request_response import GetPaymentRequestResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -134,10 +132,6 @@ def create_payment_request(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_payment_request(
@@ -219,10 +213,6 @@ def get_payment_request(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_payment_request(
@@ -285,10 +275,6 @@ def delete_payment_request(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -400,10 +386,6 @@ async def create_payment_request(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_payment_request(
@@ -485,10 +467,6 @@ async def get_payment_request(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_payment_request(
@@ -551,8 +529,4 @@ async def delete_payment_request(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/process/raw_client.py b/src/brevo/process/raw_client.py
index 528842e..6f8d407 100644
--- a/src/brevo/process/raw_client.py
+++ b/src/brevo/process/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -15,7 +14,6 @@
from .types.get_process_response import GetProcessResponse
from .types.get_processes_request_sort import GetProcessesRequestSort
from .types.get_processes_response import GetProcessesResponse
-from pydantic import ValidationError
class RawProcessClient:
@@ -110,10 +108,6 @@ def get_processes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_process(
@@ -197,10 +191,6 @@ def get_process(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -296,10 +286,6 @@ async def get_processes(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_process(
@@ -383,8 +369,4 @@ async def get_process(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/program/raw_client.py b/src/brevo/program/raw_client.py
index 44b521c..af86a2e 100644
--- a/src/brevo/program/raw_client.py
+++ b/src/brevo/program/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
@@ -24,7 +23,6 @@
from .types.get_parameter_subscription_info_response import GetParameterSubscriptionInfoResponse
from .types.subscribe_member_to_a_subscription_response import SubscribeMemberToASubscriptionResponse
from .types.subscribe_to_loyalty_program_response import SubscribeToLoyaltyProgramResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -158,10 +156,6 @@ def get_lp_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_new_lp(
@@ -281,10 +275,6 @@ def create_new_lp(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_loyalty_program_info(
@@ -379,10 +369,6 @@ def get_loyalty_program_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_loyalty_program(
@@ -512,10 +498,6 @@ def update_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_loyalty_program(
@@ -602,10 +584,6 @@ def delete_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def partially_update_loyalty_program(
@@ -735,10 +713,6 @@ def partially_update_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_parameter_subscription_info(
@@ -853,10 +827,6 @@ def get_parameter_subscription_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_contact_subscription(
@@ -957,10 +927,6 @@ def delete_contact_subscription(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def publish_loyalty_program(
@@ -1047,10 +1013,6 @@ def publish_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def subscribe_member_to_a_subscription(
@@ -1180,10 +1142,6 @@ def subscribe_member_to_a_subscription(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_contact_members(
@@ -1287,10 +1245,6 @@ def delete_contact_members(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def subscribe_to_loyalty_program(
@@ -1420,10 +1374,6 @@ def subscribe_to_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1555,10 +1505,6 @@ async def get_lp_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_new_lp(
@@ -1678,10 +1624,6 @@ async def create_new_lp(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_loyalty_program_info(
@@ -1776,10 +1718,6 @@ async def get_loyalty_program_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_loyalty_program(
@@ -1909,10 +1847,6 @@ async def update_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_loyalty_program(
@@ -1999,10 +1933,6 @@ async def delete_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def partially_update_loyalty_program(
@@ -2132,10 +2062,6 @@ async def partially_update_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_parameter_subscription_info(
@@ -2250,10 +2176,6 @@ async def get_parameter_subscription_info(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_contact_subscription(
@@ -2354,10 +2276,6 @@ async def delete_contact_subscription(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def publish_loyalty_program(
@@ -2444,10 +2362,6 @@ async def publish_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def subscribe_member_to_a_subscription(
@@ -2577,10 +2491,6 @@ async def subscribe_member_to_a_subscription(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_contact_members(
@@ -2684,10 +2594,6 @@ async def delete_contact_members(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def subscribe_to_loyalty_program(
@@ -2817,8 +2723,4 @@ async def subscribe_to_loyalty_program(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/reward/raw_client.py b/src/brevo/reward/raw_client.py
index 6a1544b..9460cf1 100644
--- a/src/brevo/reward/raw_client.py
+++ b/src/brevo/reward/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -38,7 +37,6 @@
from .types.get_loyalty_offer_programs_pid_vouchers_response import GetLoyaltyOfferProgramsPidVouchersResponse
from .types.redeem_voucher_request_order import RedeemVoucherRequestOrder
from .types.validate_reward_response import ValidateRewardResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -143,10 +141,6 @@ def get_code_count(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_reward_page_api(
@@ -277,10 +271,6 @@ def get_reward_page_api(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_reward(
@@ -393,10 +383,6 @@ def create_reward(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_voucher(
@@ -546,10 +532,6 @@ def create_voucher(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def redeem_voucher(
@@ -728,10 +710,6 @@ def redeem_voucher(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def complete_redeem_transaction(
@@ -862,10 +840,6 @@ def complete_redeem_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def revoke_vouchers(
@@ -929,10 +903,6 @@ def revoke_vouchers(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def validate_reward(
@@ -1077,10 +1047,6 @@ def validate_reward(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_reward_information(
@@ -1200,10 +1166,6 @@ def get_reward_information(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_voucher_for_a_contact(
@@ -1338,10 +1300,6 @@ def get_voucher_for_a_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1444,10 +1402,6 @@ async def get_code_count(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_reward_page_api(
@@ -1578,10 +1532,6 @@ async def get_reward_page_api(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_reward(
@@ -1694,10 +1644,6 @@ async def create_reward(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_voucher(
@@ -1847,10 +1793,6 @@ async def create_voucher(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def redeem_voucher(
@@ -2029,10 +1971,6 @@ async def redeem_voucher(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def complete_redeem_transaction(
@@ -2163,10 +2101,6 @@ async def complete_redeem_transaction(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def revoke_vouchers(
@@ -2230,10 +2164,6 @@ async def revoke_vouchers(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def validate_reward(
@@ -2378,10 +2308,6 @@ async def validate_reward(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_reward_information(
@@ -2501,10 +2427,6 @@ async def get_reward_information(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_voucher_for_a_contact(
@@ -2639,8 +2561,4 @@ async def get_voucher_for_a_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/senders/raw_client.py b/src/brevo/senders/raw_client.py
index 41cd67c..3abef63 100644
--- a/src/brevo/senders/raw_client.py
+++ b/src/brevo/senders/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -19,7 +18,6 @@
from .types.get_ips_response import GetIpsResponse
from .types.get_senders_response import GetSendersResponse
from .types.update_sender_request_ips_item import UpdateSenderRequestIpsItem
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -108,10 +106,6 @@ def get_senders(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_sender(
@@ -204,10 +198,6 @@ def create_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_ips(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[GetIpsResponse]:
@@ -266,10 +256,6 @@ def get_ips(self, *, request_options: typing.Optional[RequestOptions] = None) ->
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_sender(
@@ -360,10 +346,6 @@ def update_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_sender(
@@ -425,10 +407,6 @@ def delete_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_ips_from_sender(
@@ -501,10 +479,6 @@ def get_ips_from_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def validate_sender_by_otp(
@@ -578,10 +552,6 @@ def validate_sender_by_otp(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -668,10 +638,6 @@ async def get_senders(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_sender(
@@ -764,10 +730,6 @@ async def create_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_ips(
@@ -828,10 +790,6 @@ async def get_ips(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_sender(
@@ -922,10 +880,6 @@ async def update_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_sender(
@@ -987,10 +941,6 @@ async def delete_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_ips_from_sender(
@@ -1063,10 +1013,6 @@ async def get_ips_from_sender(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def validate_sender_by_otp(
@@ -1140,8 +1086,4 @@ async def validate_sender_by_otp(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/sms_campaigns/raw_client.py b/src/brevo/sms_campaigns/raw_client.py
index 4be4c17..52213ab 100644
--- a/src/brevo/sms_campaigns/raw_client.py
+++ b/src/brevo/sms_campaigns/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -27,7 +26,6 @@
from .types.request_sms_recipient_export_request_recipients_type import RequestSmsRecipientExportRequestRecipientsType
from .types.request_sms_recipient_export_response import RequestSmsRecipientExportResponse
from .types.update_sms_campaign_request_recipients import UpdateSmsCampaignRequestRecipients
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -114,10 +112,6 @@ def get_sms_campaigns(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_sms_campaign(
@@ -212,10 +206,6 @@ def create_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_sms_campaign(
@@ -275,10 +265,6 @@ def get_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_sms_campaign(
@@ -380,10 +366,6 @@ def update_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_sms_campaign(
@@ -435,10 +417,6 @@ def delete_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def request_sms_recipient_export(
@@ -519,10 +497,6 @@ def request_sms_recipient_export(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_sms_campaign_now(
@@ -585,10 +559,6 @@ def send_sms_campaign_now(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_sms_report(
@@ -663,10 +633,6 @@ def send_sms_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_test_sms(
@@ -732,10 +698,6 @@ def send_test_sms(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_sms_campaign_status(
@@ -801,10 +763,6 @@ def update_sms_campaign_status(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -889,10 +847,6 @@ async def get_sms_campaigns(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_sms_campaign(
@@ -987,10 +941,6 @@ async def create_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_sms_campaign(
@@ -1050,10 +1000,6 @@ async def get_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_sms_campaign(
@@ -1155,10 +1101,6 @@ async def update_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_sms_campaign(
@@ -1210,10 +1152,6 @@ async def delete_sms_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def request_sms_recipient_export(
@@ -1294,10 +1232,6 @@ async def request_sms_recipient_export(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_sms_campaign_now(
@@ -1360,10 +1294,6 @@ async def send_sms_campaign_now(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_sms_report(
@@ -1438,10 +1368,6 @@ async def send_sms_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_test_sms(
@@ -1507,10 +1433,6 @@ async def send_test_sms(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_sms_campaign_status(
@@ -1576,8 +1498,4 @@ async def update_sms_campaign_status(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/sms_templates/raw_client.py b/src/brevo/sms_templates/raw_client.py
index 5bbf501..9d23d53 100644
--- a/src/brevo/sms_templates/raw_client.py
+++ b/src/brevo/sms_templates/raw_client.py
@@ -6,13 +6,11 @@
from ..core.api_error import ApiError
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.unchecked_base_model import construct_type
from ..errors.bad_request_error import BadRequestError
from .types.get_sms_templates_request_sort import GetSmsTemplatesRequestSort
from .types.get_sms_templates_response import GetSmsTemplatesResponse
-from pydantic import ValidationError
class RawSmsTemplatesClient:
@@ -81,10 +79,6 @@ def get_sms_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -154,8 +148,4 @@ async def get_sms_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/tasks/raw_client.py b/src/brevo/tasks/raw_client.py
index 073a071..d4d0ff2 100644
--- a/src/brevo/tasks/raw_client.py
+++ b/src/brevo/tasks/raw_client.py
@@ -8,7 +8,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -22,7 +21,6 @@
from .types.get_crm_tasks_response import GetCrmTasksResponse
from .types.get_crm_tasktypes_response import GetCrmTasktypesResponse
from .types.post_crm_tasks_response import PostCrmTasksResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -144,10 +142,6 @@ def get_all_tasks(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_a_task(
@@ -257,10 +251,6 @@ def create_a_task(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_a_task(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[Task]:
@@ -317,10 +307,6 @@ def get_a_task(self, id: str, *, request_options: typing.Optional[RequestOptions
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_a_task(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
@@ -369,10 +355,6 @@ def delete_a_task(self, id: str, *, request_options: typing.Optional[RequestOpti
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_a_task(
@@ -488,10 +470,6 @@ def update_a_task(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_all_task_types(
@@ -526,10 +504,6 @@ def get_all_task_types(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -649,10 +623,6 @@ async def get_all_tasks(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_a_task(
@@ -762,10 +732,6 @@ async def create_a_task(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_a_task(
@@ -824,10 +790,6 @@ async def get_a_task(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_a_task(
@@ -878,10 +840,6 @@ async def delete_a_task(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_a_task(
@@ -997,10 +955,6 @@ async def update_a_task(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_all_task_types(
@@ -1035,8 +989,4 @@ async def get_all_task_types(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/tier/raw_client.py b/src/brevo/tier/raw_client.py
index f0013ca..e30d4ed 100644
--- a/src/brevo/tier/raw_client.py
+++ b/src/brevo/tier/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -38,7 +37,6 @@
from .types.update_tier_group_request_upgrade_strategy import UpdateTierGroupRequestUpgradeStrategy
from .types.update_tier_request_access_conditions_item import UpdateTierRequestAccessConditionsItem
from .types.update_tier_request_tier_rewards_item import UpdateTierRequestTierRewardsItem
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -168,10 +166,6 @@ def add_subscription_to_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_list_of_tier_groups(
@@ -276,10 +270,6 @@ def get_list_of_tier_groups(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_tier_group(
@@ -414,10 +404,6 @@ def create_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_tier_group(
@@ -526,10 +512,6 @@ def get_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_tier_group(
@@ -657,10 +639,6 @@ def update_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_tier_group(
@@ -761,10 +739,6 @@ def delete_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_tier_for_tier_group(
@@ -898,10 +872,6 @@ def create_tier_for_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_loyalty_program_tier(
@@ -1006,10 +976,6 @@ def get_loyalty_program_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_tier(
@@ -1143,10 +1109,6 @@ def update_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_tier(
@@ -1236,10 +1198,6 @@ def delete_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1367,10 +1325,6 @@ async def add_subscription_to_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_list_of_tier_groups(
@@ -1475,10 +1429,6 @@ async def get_list_of_tier_groups(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_tier_group(
@@ -1613,10 +1563,6 @@ async def create_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_tier_group(
@@ -1725,10 +1671,6 @@ async def get_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_tier_group(
@@ -1856,10 +1798,6 @@ async def update_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_tier_group(
@@ -1960,10 +1898,6 @@ async def delete_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_tier_for_tier_group(
@@ -2097,10 +2031,6 @@ async def create_tier_for_tier_group(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_loyalty_program_tier(
@@ -2205,10 +2135,6 @@ async def get_loyalty_program_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_tier(
@@ -2342,10 +2268,6 @@ async def update_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_tier(
@@ -2435,8 +2357,4 @@ async def delete_tier(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/transactional_emails/raw_client.py b/src/brevo/transactional_emails/raw_client.py
index c33ac31..9d56f99 100644
--- a/src/brevo/transactional_emails/raw_client.py
+++ b/src/brevo/transactional_emails/raw_client.py
@@ -8,7 +8,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -44,7 +43,6 @@
from .types.send_transac_email_request_to_item import SendTransacEmailRequestToItem
from .types.send_transac_email_response import SendTransacEmailResponse
from .types.update_smtp_template_request_sender import UpdateSmtpTemplateRequestSender
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -131,10 +129,6 @@ def get_transac_blocked_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def unblock_or_resubscribe_a_transactional_contact(
@@ -186,10 +180,6 @@ def unblock_or_resubscribe_a_transactional_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_blocked_domains(
@@ -226,10 +216,6 @@ def get_blocked_domains(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def block_new_domain(
@@ -279,10 +265,6 @@ def block_new_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_blocked_domain(
@@ -336,10 +318,6 @@ def delete_blocked_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_hardbounces(
@@ -402,10 +380,6 @@ def delete_hardbounces(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_transac_email(
@@ -557,10 +531,6 @@ def send_transac_email(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_scheduled_email_by_id(
@@ -614,10 +584,6 @@ def delete_scheduled_email_by_id(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_scheduled_email_by_id(
@@ -714,10 +680,6 @@ def get_scheduled_email_by_id(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_transac_emails_list(
@@ -809,10 +771,6 @@ def get_transac_emails_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_transac_email_content(
@@ -854,10 +812,6 @@ def get_transac_email_content(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_an_smtp_transactional_log(
@@ -909,10 +863,6 @@ def delete_an_smtp_transactional_log(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_aggregated_smtp_report(
@@ -984,10 +934,6 @@ def get_aggregated_smtp_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_email_event_report(
@@ -1094,10 +1040,6 @@ def get_email_event_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_smtp_report(
@@ -1182,10 +1124,6 @@ def get_smtp_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def post_preview_smtp_email_templates(
@@ -1238,10 +1176,6 @@ def post_preview_smtp_email_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_smtp_templates(
@@ -1311,10 +1245,6 @@ def get_smtp_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_smtp_template(
@@ -1420,10 +1350,6 @@ def create_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_smtp_template(
@@ -1483,10 +1409,6 @@ def get_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_smtp_template(
@@ -1599,10 +1521,6 @@ def update_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_smtp_template(
@@ -1654,10 +1572,6 @@ def delete_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_test_template(
@@ -1723,10 +1637,6 @@ def send_test_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1811,10 +1721,6 @@ async def get_transac_blocked_contacts(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def unblock_or_resubscribe_a_transactional_contact(
@@ -1866,10 +1772,6 @@ async def unblock_or_resubscribe_a_transactional_contact(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_blocked_domains(
@@ -1906,10 +1808,6 @@ async def get_blocked_domains(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def block_new_domain(
@@ -1959,10 +1857,6 @@ async def block_new_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_blocked_domain(
@@ -2016,10 +1910,6 @@ async def delete_blocked_domain(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_hardbounces(
@@ -2082,10 +1972,6 @@ async def delete_hardbounces(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_transac_email(
@@ -2237,10 +2123,6 @@ async def send_transac_email(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_scheduled_email_by_id(
@@ -2294,10 +2176,6 @@ async def delete_scheduled_email_by_id(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_scheduled_email_by_id(
@@ -2394,10 +2272,6 @@ async def get_scheduled_email_by_id(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_transac_emails_list(
@@ -2489,10 +2363,6 @@ async def get_transac_emails_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_transac_email_content(
@@ -2534,10 +2404,6 @@ async def get_transac_email_content(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_an_smtp_transactional_log(
@@ -2589,10 +2455,6 @@ async def delete_an_smtp_transactional_log(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_aggregated_smtp_report(
@@ -2664,10 +2526,6 @@ async def get_aggregated_smtp_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_email_event_report(
@@ -2774,10 +2632,6 @@ async def get_email_event_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_smtp_report(
@@ -2862,10 +2716,6 @@ async def get_smtp_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def post_preview_smtp_email_templates(
@@ -2918,10 +2768,6 @@ async def post_preview_smtp_email_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_smtp_templates(
@@ -2991,10 +2837,6 @@ async def get_smtp_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_smtp_template(
@@ -3100,10 +2942,6 @@ async def create_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_smtp_template(
@@ -3163,10 +3001,6 @@ async def get_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_smtp_template(
@@ -3279,10 +3113,6 @@ async def update_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_smtp_template(
@@ -3334,10 +3164,6 @@ async def delete_smtp_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_test_template(
@@ -3403,8 +3229,4 @@ async def send_test_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/transactional_sms/client.py b/src/brevo/transactional_sms/client.py
index 2edb5fb..dba8ec4 100644
--- a/src/brevo/transactional_sms/client.py
+++ b/src/brevo/transactional_sms/client.py
@@ -45,8 +45,6 @@ def send_async_transactional_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SendAsyncTransactionalSmsResponse:
"""
@@ -77,12 +75,6 @@ def send_async_transactional_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -111,8 +103,6 @@ def send_async_transactional_sms(
type=type,
unicode_enabled=unicode_enabled,
web_url=web_url,
- template_id=template_id,
- content=content,
request_options=request_options,
)
return _response.data
@@ -127,8 +117,6 @@ def send_transac_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SendTransacSmsResponse:
"""
@@ -155,12 +143,6 @@ def send_transac_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -189,8 +171,6 @@ def send_transac_sms(
type=type,
unicode_enabled=unicode_enabled,
web_url=web_url,
- template_id=template_id,
- content=content,
request_options=request_options,
)
return _response.data
@@ -392,8 +372,6 @@ async def send_async_transactional_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SendAsyncTransactionalSmsResponse:
"""
@@ -424,12 +402,6 @@ async def send_async_transactional_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -466,8 +438,6 @@ async def main() -> None:
type=type,
unicode_enabled=unicode_enabled,
web_url=web_url,
- template_id=template_id,
- content=content,
request_options=request_options,
)
return _response.data
@@ -482,8 +452,6 @@ async def send_transac_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> SendTransacSmsResponse:
"""
@@ -510,12 +478,6 @@ async def send_transac_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -552,8 +514,6 @@ async def main() -> None:
type=type,
unicode_enabled=unicode_enabled,
web_url=web_url,
- template_id=template_id,
- content=content,
request_options=request_options,
)
return _response.data
diff --git a/src/brevo/transactional_sms/raw_client.py b/src/brevo/transactional_sms/raw_client.py
index 4472ef0..137c433 100644
--- a/src/brevo/transactional_sms/raw_client.py
+++ b/src/brevo/transactional_sms/raw_client.py
@@ -6,7 +6,6 @@
from ..core.api_error import ApiError
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -23,7 +22,6 @@
from .types.get_transac_sms_report_response import GetTransacSmsReportResponse
from .types.send_async_transactional_sms_response import SendAsyncTransactionalSmsResponse
from .types.send_transac_sms_response import SendTransacSmsResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -43,8 +41,6 @@ def send_async_transactional_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[SendAsyncTransactionalSmsResponse]:
"""
@@ -75,12 +71,6 @@ def send_async_transactional_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -102,8 +92,6 @@ def send_async_transactional_sms(
"type": type,
"unicodeEnabled": unicode_enabled,
"webUrl": web_url,
- "templateId": template_id,
- "content": content,
},
headers={
"content-type": "application/json",
@@ -135,10 +123,6 @@ def send_async_transactional_sms(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_transac_sms(
@@ -151,8 +135,6 @@ def send_transac_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[SendTransacSmsResponse]:
"""
@@ -179,12 +161,6 @@ def send_transac_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -206,8 +182,6 @@ def send_transac_sms(
"type": type,
"unicodeEnabled": unicode_enabled,
"webUrl": web_url,
- "templateId": template_id,
- "content": content,
},
headers={
"content-type": "application/json",
@@ -250,10 +224,6 @@ def send_transac_sms(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_transac_aggregated_sms_report(
@@ -323,10 +293,6 @@ def get_transac_aggregated_sms_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_sms_events(
@@ -421,10 +387,6 @@ def get_sms_events(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_transac_sms_report(
@@ -499,10 +461,6 @@ def get_transac_sms_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -520,8 +478,6 @@ async def send_async_transactional_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[SendAsyncTransactionalSmsResponse]:
"""
@@ -552,12 +508,6 @@ async def send_async_transactional_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -579,8 +529,6 @@ async def send_async_transactional_sms(
"type": type,
"unicodeEnabled": unicode_enabled,
"webUrl": web_url,
- "templateId": template_id,
- "content": content,
},
headers={
"content-type": "application/json",
@@ -612,10 +560,6 @@ async def send_async_transactional_sms(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_transac_sms(
@@ -628,8 +572,6 @@ async def send_transac_sms(
type: typing.Optional[SendTransacSmsType] = OMIT,
unicode_enabled: typing.Optional[bool] = OMIT,
web_url: typing.Optional[str] = OMIT,
- template_id: typing.Optional[int] = OMIT,
- content: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[SendTransacSmsResponse]:
"""
@@ -656,12 +598,6 @@ async def send_transac_sms(
web_url : typing.Optional[str]
Webhook to call for each event triggered by the message (delivered etc.)
- template_id : typing.Optional[int]
- Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.
-
- content : typing.Optional[str]
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
-
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -683,8 +619,6 @@ async def send_transac_sms(
"type": type,
"unicodeEnabled": unicode_enabled,
"webUrl": web_url,
- "templateId": template_id,
- "content": content,
},
headers={
"content-type": "application/json",
@@ -727,10 +661,6 @@ async def send_transac_sms(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_transac_aggregated_sms_report(
@@ -800,10 +730,6 @@ async def get_transac_aggregated_sms_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_sms_events(
@@ -898,10 +824,6 @@ async def get_sms_events(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_transac_sms_report(
@@ -976,8 +898,4 @@ async def get_transac_sms_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/transactional_whats_app/raw_client.py b/src/brevo/transactional_whats_app/raw_client.py
index 63b8a60..c5f551f 100644
--- a/src/brevo/transactional_whats_app/raw_client.py
+++ b/src/brevo/transactional_whats_app/raw_client.py
@@ -6,7 +6,6 @@
from ..core.api_error import ApiError
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -16,7 +15,6 @@
from .types.get_whatsapp_event_report_response import GetWhatsappEventReportResponse
from .types.send_whatsapp_message_request import SendWhatsappMessageRequest
from .types.send_whatsapp_message_response import SendWhatsappMessageResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -82,10 +80,6 @@ def send_whatsapp_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_whatsapp_event_report(
@@ -177,10 +171,6 @@ def get_whatsapp_event_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -244,10 +234,6 @@ async def send_whatsapp_message(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_whatsapp_event_report(
@@ -339,8 +325,4 @@ async def get_whatsapp_event_report(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/types/__init__.py b/src/brevo/types/__init__.py
index c1e3c6d..71a24a0 100644
--- a/src/brevo/types/__init__.py
+++ b/src/brevo/types/__init__.py
@@ -16,8 +16,6 @@
BalanceDefinitionBalanceAvailabilityDurationModifier,
)
from .balance_limit import BalanceLimit
- from .batch_events_response import BatchEventsResponse
- from .batch_events_response_errors_item import BatchEventsResponseErrorsItem
from .cart import Cart
from .company import Company
from .configuration import Configuration
@@ -86,6 +84,8 @@
from .order_identifiers import OrderIdentifiers
from .order_meta_info_value import OrderMetaInfoValue
from .order_products_item import OrderProductsItem
+ from .order_products_item_quantity import OrderProductsItemQuantity
+ from .order_products_item_quantity_float import OrderProductsItemQuantityFloat
from .pipeline import Pipeline
from .pipeline_stages_item import PipelineStagesItem
from .pipelines import Pipelines
@@ -131,8 +131,6 @@
"BalanceDefinition": ".balance_definition",
"BalanceDefinitionBalanceAvailabilityDurationModifier": ".balance_definition_balance_availability_duration_modifier",
"BalanceLimit": ".balance_limit",
- "BatchEventsResponse": ".batch_events_response",
- "BatchEventsResponseErrorsItem": ".batch_events_response_errors_item",
"Cart": ".cart",
"Company": ".company",
"Configuration": ".configuration",
@@ -201,6 +199,8 @@
"OrderIdentifiers": ".order_identifiers",
"OrderMetaInfoValue": ".order_meta_info_value",
"OrderProductsItem": ".order_products_item",
+ "OrderProductsItemQuantity": ".order_products_item_quantity",
+ "OrderProductsItemQuantityFloat": ".order_products_item_quantity_float",
"Pipeline": ".pipeline",
"PipelineStagesItem": ".pipeline_stages_item",
"Pipelines": ".pipelines",
@@ -270,8 +270,6 @@ def __dir__():
"BalanceDefinition",
"BalanceDefinitionBalanceAvailabilityDurationModifier",
"BalanceLimit",
- "BatchEventsResponse",
- "BatchEventsResponseErrorsItem",
"Cart",
"Company",
"Configuration",
@@ -340,6 +338,8 @@ def __dir__():
"OrderIdentifiers",
"OrderMetaInfoValue",
"OrderProductsItem",
+ "OrderProductsItemQuantity",
+ "OrderProductsItemQuantityFloat",
"Pipeline",
"PipelineStagesItem",
"Pipelines",
diff --git a/src/brevo/types/batch_events_response.py b/src/brevo/types/batch_events_response.py
deleted file mode 100644
index 98ca42d..0000000
--- a/src/brevo/types/batch_events_response.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-import pydantic
-from ..core.pydantic_utilities import IS_PYDANTIC_V2
-from ..core.unchecked_base_model import UncheckedBaseModel
-from .batch_events_response_errors_item import BatchEventsResponseErrorsItem
-
-
-class BatchEventsResponse(UncheckedBaseModel):
- """
- Response returned when a batch of events is processed
- """
-
- status: str = pydantic.Field()
- """
- Status of the batch request
- """
-
- total_events: int = pydantic.Field()
- """
- Total number of events submitted in the batch
- """
-
- successful_events: int = pydantic.Field()
- """
- Number of events that were successfully processed
- """
-
- failed_events: int = pydantic.Field()
- """
- Number of events that failed to be processed
- """
-
- errors: typing.List[BatchEventsResponseErrorsItem] = pydantic.Field()
- """
- List of errors for the failed events
- """
-
- if IS_PYDANTIC_V2:
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
- else:
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic.Extra.allow
diff --git a/src/brevo/types/get_campaign_stats.py b/src/brevo/types/get_campaign_stats.py
index cf64e23..45d3dc0 100644
--- a/src/brevo/types/get_campaign_stats.py
+++ b/src/brevo/types/get_campaign_stats.py
@@ -11,13 +11,13 @@
class GetCampaignStats(UncheckedBaseModel):
apple_mpp_opens: typing_extensions.Annotated[
- typing.Optional[int],
+ int,
FieldMetadata(alias="appleMppOpens"),
pydantic.Field(
alias="appleMppOpens",
description="Numbers of times your email has been opened automatically through Apple MPP.",
),
- ] = None
+ ]
clickers: int = pydantic.Field()
"""
Number of total clicks for the campaign
@@ -60,13 +60,13 @@ class GetCampaignStats(UncheckedBaseModel):
),
] = None
opens_rate: typing_extensions.Annotated[
- typing.Optional[float],
+ float,
FieldMetadata(alias="opensRate"),
pydantic.Field(
alias="opensRate",
description="Percentage of recipients who open the email out of your total number of recipients. Depending on your Campaign settings, they may include Apple MPP opens.",
),
- ] = None
+ ]
return_bounce: typing_extensions.Annotated[
typing.Optional[int],
FieldMetadata(alias="returnBounce"),
diff --git a/src/brevo/types/get_extended_campaign_overview.py b/src/brevo/types/get_extended_campaign_overview.py
index 97b2198..b777a01 100644
--- a/src/brevo/types/get_extended_campaign_overview.py
+++ b/src/brevo/types/get_extended_campaign_overview.py
@@ -13,14 +13,6 @@
class GetExtendedCampaignOverview(UncheckedBaseModel):
- attachment_file: typing_extensions.Annotated[
- typing.Optional[str],
- FieldMetadata(alias="attachmentFile"),
- pydantic.Field(
- alias="attachmentFile",
- description="Url of the attachment file. Only available if the campaign has an attachment.",
- ),
- ] = None
ab_testing: typing_extensions.Annotated[
typing.Optional[bool],
FieldMetadata(alias="abTesting"),
@@ -196,11 +188,6 @@ class GetExtendedCampaignOverview(UncheckedBaseModel):
Tag of the campaign
"""
- tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
- """
- List of tags of the campaign
- """
-
test_sent: typing_extensions.Annotated[
bool,
FieldMetadata(alias="testSent"),
diff --git a/src/brevo/types/get_extended_campaign_overview_status.py b/src/brevo/types/get_extended_campaign_overview_status.py
index befc76c..03db24c 100644
--- a/src/brevo/types/get_extended_campaign_overview_status.py
+++ b/src/brevo/types/get_extended_campaign_overview_status.py
@@ -3,8 +3,5 @@
import typing
GetExtendedCampaignOverviewStatus = typing.Union[
- typing.Literal[
- "draft", "sent", "archive", "queued", "suspended", "in_process", "in_review", "cancelling", "cancelled"
- ],
- typing.Any,
+ typing.Literal["draft", "sent", "archive", "queued", "suspended", "in_process"], typing.Any
]
diff --git a/src/brevo/types/order_products_item.py b/src/brevo/types/order_products_item.py
index ce05361..07d8879 100644
--- a/src/brevo/types/order_products_item.py
+++ b/src/brevo/types/order_products_item.py
@@ -2,52 +2,7 @@
import typing
-import pydantic
-import typing_extensions
-from ..core.pydantic_utilities import IS_PYDANTIC_V2
-from ..core.serialization import FieldMetadata
-from ..core.unchecked_base_model import UncheckedBaseModel
+from .order_products_item_quantity import OrderProductsItemQuantity
+from .order_products_item_quantity_float import OrderProductsItemQuantityFloat
-
-class OrderProductsItem(UncheckedBaseModel):
- """
- Details for the Products in an order.
- """
-
- price: float = pydantic.Field()
- """
- The price of a unit of product
- """
-
- product_id: typing_extensions.Annotated[
- str, FieldMetadata(alias="productId"), pydantic.Field(alias="productId", description="ID of the product.")
- ]
- variant_id: typing_extensions.Annotated[
- typing.Optional[str],
- FieldMetadata(alias="variantId"),
- pydantic.Field(alias="variantId", description="Product ID of the red color shirts."),
- ] = None
- quantity: typing.Optional[int] = pydantic.Field(default=None)
- """
- **Required if quantityFloat is empty.**
-
- Number of product units added to the cart (whole numbers only, e.g., 10)
- """
-
- quantity_float: typing_extensions.Annotated[
- typing.Optional[float],
- FieldMetadata(alias="quantityFloat"),
- pydantic.Field(
- alias="quantityFloat",
- description="**Required if quantity is empty.**\n\nNumber of product units added to the cart(supports decimals, e.g., 20.52)",
- ),
- ] = None
-
- if IS_PYDANTIC_V2:
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
- else:
-
- class Config:
- frozen = True
- smart_union = True
- extra = pydantic.Extra.allow
+OrderProductsItem = typing.Union[OrderProductsItemQuantity, OrderProductsItemQuantityFloat]
diff --git a/src/brevo/types/order_products_item_quantity.py b/src/brevo/types/order_products_item_quantity.py
new file mode 100644
index 0000000..1f5f316
--- /dev/null
+++ b/src/brevo/types/order_products_item_quantity.py
@@ -0,0 +1,23 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+import pydantic
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+from ..core.unchecked_base_model import UncheckedBaseModel
+
+
+class OrderProductsItemQuantity(UncheckedBaseModel):
+ quantity: int = pydantic.Field()
+ """
+ **Required if quantityFloat is empty.** Number of product units added to the cart (whole numbers only)
+ """
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/brevo/types/batch_events_response_errors_item.py b/src/brevo/types/order_products_item_quantity_float.py
similarity index 57%
rename from src/brevo/types/batch_events_response_errors_item.py
rename to src/brevo/types/order_products_item_quantity_float.py
index 01335fe..ca82f73 100644
--- a/src/brevo/types/batch_events_response_errors_item.py
+++ b/src/brevo/types/order_products_item_quantity_float.py
@@ -9,16 +9,15 @@
from ..core.unchecked_base_model import UncheckedBaseModel
-class BatchEventsResponseErrorsItem(UncheckedBaseModel):
- event_index: typing_extensions.Annotated[
- typing.Optional[typing.List[int]],
- FieldMetadata(alias="eventIndex"),
- pydantic.Field(alias="eventIndex", description="Index positions (0-based) of the events that caused the error"),
- ] = None
- message: typing.Optional[str] = pydantic.Field(default=None)
- """
- Description of the error
- """
+class OrderProductsItemQuantityFloat(UncheckedBaseModel):
+ quantity_float: typing_extensions.Annotated[
+ float,
+ FieldMetadata(alias="quantityFloat"),
+ pydantic.Field(
+ alias="quantityFloat",
+ description="**Required if quantity is empty.** Number of product units added to the cart(supports decimals)",
+ ),
+ ]
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
diff --git a/src/brevo/types/send_transac_sms.py b/src/brevo/types/send_transac_sms.py
index d5a4b2d..65aa457 100644
--- a/src/brevo/types/send_transac_sms.py
+++ b/src/brevo/types/send_transac_sms.py
@@ -55,18 +55,6 @@ class SendTransacSms(UncheckedBaseModel):
alias="webUrl", description="Webhook to call for each event triggered by the message (delivered etc.)"
),
] = None
- template_id: typing_extensions.Annotated[
- typing.Optional[int],
- FieldMetadata(alias="templateId"),
- pydantic.Field(
- alias="templateId",
- description="Template ID to send SMS with the template. When provided, overrides the content parameter. Mandatory if 'content' is not passed.",
- ),
- ] = None
- content: typing.Optional[str] = pydantic.Field(default=None)
- """
- Content of the message. If more than **160 characters** long, will be sent as multiple text messages. Mandatory if 'templateId' is not passed, ignored if 'templateId' is passed.
- """
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
diff --git a/src/brevo/types/update_campaign_status_status.py b/src/brevo/types/update_campaign_status_status.py
index fc52bf9..982d48c 100644
--- a/src/brevo/types/update_campaign_status_status.py
+++ b/src/brevo/types/update_campaign_status_status.py
@@ -3,8 +3,6 @@
import typing
UpdateCampaignStatusStatus = typing.Union[
- typing.Literal[
- "suspended", "archive", "darchive", "sent", "queued", "replicate", "replicateTemplate", "cancel", "draft"
- ],
+ typing.Literal["suspended", "archive", "darchive", "sent", "queued", "replicate", "replicateTemplate", "draft"],
typing.Any,
]
diff --git a/src/brevo/user/raw_client.py b/src/brevo/user/raw_client.py
index e28d8b7..961d3f9 100644
--- a/src/brevo/user/raw_client.py
+++ b/src/brevo/user/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -21,7 +20,6 @@
from .types.put_revoke_user_permission_response import PutRevokeUserPermissionResponse
from .types.putresendcancelinvitation_request_action import PutresendcancelinvitationRequestAction
from .types.putresendcancelinvitation_response import PutresendcancelinvitationResponse
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -74,10 +72,6 @@ def get_invited_users_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def put_revoke_user_permission(
@@ -126,10 +120,6 @@ def put_revoke_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def inviteuser(
@@ -268,10 +258,6 @@ def inviteuser(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def putresendcancelinvitation(
@@ -327,10 +313,6 @@ def putresendcancelinvitation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def edit_user_permission(
@@ -468,10 +450,6 @@ def edit_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_user_permission(
@@ -520,10 +498,6 @@ def get_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -574,10 +548,6 @@ async def get_invited_users_list(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def put_revoke_user_permission(
@@ -626,10 +596,6 @@ async def put_revoke_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def inviteuser(
@@ -768,10 +734,6 @@ async def inviteuser(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def putresendcancelinvitation(
@@ -827,10 +789,6 @@ async def putresendcancelinvitation(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def edit_user_permission(
@@ -968,10 +926,6 @@ async def edit_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_user_permission(
@@ -1020,8 +974,4 @@ async def get_user_permission(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/webhooks/client.py b/src/brevo/webhooks/client.py
index de76f7c..51c4238 100644
--- a/src/brevo/webhooks/client.py
+++ b/src/brevo/webhooks/client.py
@@ -139,7 +139,6 @@ def create_webhook(
type **Marketing** channel **SMS** ####
`sent`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
`subscribe`,`skip`
- #### `reply`
url : str
URL of the webhook
@@ -216,16 +215,22 @@ def export_webhooks_history(
request_options: typing.Optional[RequestOptions] = None,
) -> ExportWebhooksHistoryResponse:
"""
-
- This is an enterprise feature. Contact us to activate it for your account.
-
+ This is an enterprise feature.
+
+ To have it activated please send us a request and we will activate it for your account.
- Submits a request to export webhook event history as a CSV file. The download link is sent to the `notifyURL` you provide in the request body.
+ Exports webhook event history to CSV format for analysis and reporting.
- Use this endpoint to:
- - Export webhook event history filtered by date range, event type, or email address
- - Generate reports for compliance, auditing, or performance analysis
- - Track delivery patterns and webhook reliability over time
+ Use this to:
+ - Generate comprehensive webhook event reports
+ - Analyze webhook delivery patterns and success rates
+ - Export event data for external analysis tools
+ - Create historical reports for compliance and auditing
+ - Track webhook performance and reliability metrics
+
+ Key information returned:
+ - Process ID for tracking export completion
+ - CSV file will be delivered to specified webhook URL
Parameters
----------
@@ -596,7 +601,6 @@ async def create_webhook(
type **Marketing** channel **SMS** ####
`sent`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
`subscribe`,`skip`
- #### `reply`
url : str
URL of the webhook
@@ -681,16 +685,22 @@ async def export_webhooks_history(
request_options: typing.Optional[RequestOptions] = None,
) -> ExportWebhooksHistoryResponse:
"""
-
- This is an enterprise feature. Contact us to activate it for your account.
-
+ This is an enterprise feature.
+
+ To have it activated please send us a request and we will activate it for your account.
- Submits a request to export webhook event history as a CSV file. The download link is sent to the `notifyURL` you provide in the request body.
+ Exports webhook event history to CSV format for analysis and reporting.
- Use this endpoint to:
- - Export webhook event history filtered by date range, event type, or email address
- - Generate reports for compliance, auditing, or performance analysis
- - Track delivery patterns and webhook reliability over time
+ Use this to:
+ - Generate comprehensive webhook event reports
+ - Analyze webhook delivery patterns and success rates
+ - Export event data for external analysis tools
+ - Create historical reports for compliance and auditing
+ - Track webhook performance and reliability metrics
+
+ Key information returned:
+ - Process ID for tracking export completion
+ - CSV file will be delivered to specified webhook URL
Parameters
----------
diff --git a/src/brevo/webhooks/raw_client.py b/src/brevo/webhooks/raw_client.py
index 3175548..204a5dd 100644
--- a/src/brevo/webhooks/raw_client.py
+++ b/src/brevo/webhooks/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -29,7 +28,6 @@
from .types.update_webhook_request_auth import UpdateWebhookRequestAuth
from .types.update_webhook_request_events_item import UpdateWebhookRequestEventsItem
from .types.update_webhook_request_headers_item import UpdateWebhookRequestHeadersItem
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -112,10 +110,6 @@ def get_webhooks(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_webhook(
@@ -164,7 +158,6 @@ def create_webhook(
type **Marketing** channel **SMS** ####
`sent`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
`subscribe`,`skip`
- #### `reply`
url : str
URL of the webhook
@@ -247,10 +240,6 @@ def create_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def export_webhooks_history(
@@ -269,16 +258,22 @@ def export_webhooks_history(
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[ExportWebhooksHistoryResponse]:
"""
-
- This is an enterprise feature. Contact us to activate it for your account.
-
+ This is an enterprise feature.
+
+ To have it activated please send us a request and we will activate it for your account.
- Submits a request to export webhook event history as a CSV file. The download link is sent to the `notifyURL` you provide in the request body.
+ Exports webhook event history to CSV format for analysis and reporting.
- Use this endpoint to:
- - Export webhook event history filtered by date range, event type, or email address
- - Generate reports for compliance, auditing, or performance analysis
- - Track delivery patterns and webhook reliability over time
+ Use this to:
+ - Generate comprehensive webhook event reports
+ - Analyze webhook delivery patterns and success rates
+ - Export event data for external analysis tools
+ - Create historical reports for compliance and auditing
+ - Track webhook performance and reliability metrics
+
+ Key information returned:
+ - Process ID for tracking export completion
+ - CSV file will be delivered to specified webhook URL
Parameters
----------
@@ -369,10 +364,6 @@ def export_webhooks_history(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_webhook(
@@ -448,10 +439,6 @@ def get_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_webhook(
@@ -571,10 +558,6 @@ def update_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_webhook(
@@ -637,10 +620,6 @@ def delete_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -721,10 +700,6 @@ async def get_webhooks(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_webhook(
@@ -773,7 +748,6 @@ async def create_webhook(
type **Marketing** channel **SMS** ####
`sent`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
`subscribe`,`skip`
- #### `reply`
url : str
URL of the webhook
@@ -856,10 +830,6 @@ async def create_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def export_webhooks_history(
@@ -878,16 +848,22 @@ async def export_webhooks_history(
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[ExportWebhooksHistoryResponse]:
"""
-
- This is an enterprise feature. Contact us to activate it for your account.
-
+ This is an enterprise feature.
+
+ To have it activated please send us a request and we will activate it for your account.
- Submits a request to export webhook event history as a CSV file. The download link is sent to the `notifyURL` you provide in the request body.
+ Exports webhook event history to CSV format for analysis and reporting.
- Use this endpoint to:
- - Export webhook event history filtered by date range, event type, or email address
- - Generate reports for compliance, auditing, or performance analysis
- - Track delivery patterns and webhook reliability over time
+ Use this to:
+ - Generate comprehensive webhook event reports
+ - Analyze webhook delivery patterns and success rates
+ - Export event data for external analysis tools
+ - Create historical reports for compliance and auditing
+ - Track webhook performance and reliability metrics
+
+ Key information returned:
+ - Process ID for tracking export completion
+ - CSV file will be delivered to specified webhook URL
Parameters
----------
@@ -978,10 +954,6 @@ async def export_webhooks_history(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_webhook(
@@ -1057,10 +1029,6 @@ async def get_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_webhook(
@@ -1180,10 +1148,6 @@ async def update_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_webhook(
@@ -1246,8 +1210,4 @@ async def delete_webhook(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/src/brevo/whats_app_campaigns/raw_client.py b/src/brevo/whats_app_campaigns/raw_client.py
index 3e52023..b971a60 100644
--- a/src/brevo/whats_app_campaigns/raw_client.py
+++ b/src/brevo/whats_app_campaigns/raw_client.py
@@ -7,7 +7,6 @@
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
from ..core.http_response import AsyncHttpResponse, HttpResponse
from ..core.jsonable_encoder import jsonable_encoder
-from ..core.parse_error import ParsingError
from ..core.request_options import RequestOptions
from ..core.serialization import convert_and_respect_annotation_metadata
from ..core.unchecked_base_model import construct_type
@@ -27,7 +26,6 @@
from .types.get_whats_app_templates_response import GetWhatsAppTemplatesResponse
from .types.update_whats_app_campaign_request_campaign_status import UpdateWhatsAppCampaignRequestCampaignStatus
from .types.update_whats_app_campaign_request_recipients import UpdateWhatsAppCampaignRequestRecipients
-from pydantic import ValidationError
# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
@@ -109,10 +107,6 @@ def get_whats_app_campaigns(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_whats_app_campaign(
@@ -194,10 +188,6 @@ def create_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_whats_app_config(
@@ -246,10 +236,6 @@ def get_whats_app_config(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def create_whats_app_template(
@@ -342,10 +328,6 @@ def create_whats_app_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_whats_app_templates(
@@ -425,10 +407,6 @@ def get_whats_app_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def send_whats_app_template_approval(
@@ -472,10 +450,6 @@ def send_whats_app_template_approval(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def get_whats_app_campaign(
@@ -541,10 +515,6 @@ def get_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def update_whats_app_campaign(
@@ -622,10 +592,6 @@ def update_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
def delete_whats_app_campaign(
@@ -677,10 +643,6 @@ def delete_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -760,10 +722,6 @@ async def get_whats_app_campaigns(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_whats_app_campaign(
@@ -845,10 +803,6 @@ async def create_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_whats_app_config(
@@ -897,10 +851,6 @@ async def get_whats_app_config(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def create_whats_app_template(
@@ -993,10 +943,6 @@ async def create_whats_app_template(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_whats_app_templates(
@@ -1076,10 +1022,6 @@ async def get_whats_app_templates(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def send_whats_app_template_approval(
@@ -1123,10 +1065,6 @@ async def send_whats_app_template_approval(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def get_whats_app_campaign(
@@ -1192,10 +1130,6 @@ async def get_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def update_whats_app_campaign(
@@ -1273,10 +1207,6 @@ async def update_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
async def delete_whats_app_campaign(
@@ -1328,8 +1258,4 @@ async def delete_whats_app_campaign(
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
- except ValidationError as e:
- raise ParsingError(
- status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
- )
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
diff --git a/tests/conftest.py b/tests/conftest.py
index 73fcf94..bfee144 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -15,7 +15,7 @@
import pytest
_STARTED: bool = False
-_WIREMOCK_URL: str = "http://localhost:8080" # Default, will be updated after container starts
+_WIREMOCK_PORT: str = "8080" # Default, will be updated after container starts
_PROJECT_NAME: str = "brevo-api"
# This file lives at tests/conftest.py, so the project root is one level up.
@@ -41,7 +41,7 @@ def _get_wiremock_port() -> str:
def _start_wiremock() -> None:
"""Starts the WireMock container using docker-compose."""
- global _STARTED, _WIREMOCK_URL
+ global _STARTED, _WIREMOCK_PORT
if _STARTED:
return
@@ -54,9 +54,8 @@ def _start_wiremock() -> None:
text=True,
)
_WIREMOCK_PORT = _get_wiremock_port()
- _WIREMOCK_URL = f"http://localhost:{_WIREMOCK_PORT}"
- os.environ["WIREMOCK_URL"] = _WIREMOCK_URL
- print(f"WireMock container is ready at {_WIREMOCK_URL}")
+ os.environ["WIREMOCK_PORT"] = _WIREMOCK_PORT
+ print(f"WireMock container is ready on port {_WIREMOCK_PORT}")
_STARTED = True
except subprocess.CalledProcessError as e:
print(f"Failed to start WireMock: {e.stderr}")
diff --git a/tests/wire/conftest.py b/tests/wire/conftest.py
index b8930a2..65cd9c1 100644
--- a/tests/wire/conftest.py
+++ b/tests/wire/conftest.py
@@ -25,8 +25,9 @@
def _get_wiremock_base_url() -> str:
- """Returns the WireMock base URL from the WIREMOCK_URL environment variable."""
- return os.environ.get("WIREMOCK_URL", "http://localhost:8080")
+ """Returns the WireMock base URL using the dynamically assigned port."""
+ port = os.environ.get("WIREMOCK_PORT", "8080")
+ return f"http://localhost:{port}"
def get_client(test_id: str) -> Brevo:
diff --git a/tests/wire/test_balance.py b/tests/wire/test_balance.py
index 0a006fc..779f2c9 100644
--- a/tests/wire/test_balance.py
+++ b/tests/wire/test_balance.py
@@ -5,11 +5,7 @@ def test_balance_get_active_balances_api() -> None:
"""Test getActiveBalancesApi endpoint with WireMock"""
test_id = "balance.get_active_balances_api.0"
client = get_client(test_id)
- client.balance.get_active_balances_api(
- pid="pid",
- contact_id=1,
- balance_definition_id="balance_definition_id",
- )
+ client.balance.get_active_balances_api(pid="pid", contact_id=1, balance_definition_id="balance_definition_id")
verify_request_count(
test_id,
"GET",
@@ -23,9 +19,7 @@ def test_balance_get_balance_definition_list() -> None:
"""Test getBalanceDefinitionList endpoint with WireMock"""
test_id = "balance.get_balance_definition_list.0"
client = get_client(test_id)
- client.balance.get_balance_definition_list(
- pid="pid",
- )
+ client.balance.get_balance_definition_list(pid="pid")
verify_request_count(test_id, "GET", "/loyalty/balance/programs/pid/balance-definitions", None, 1)
@@ -33,11 +27,7 @@ def test_balance_create_balance_definition() -> None:
"""Test createBalanceDefinition endpoint with WireMock"""
test_id = "balance.create_balance_definition.0"
client = get_client(test_id)
- client.balance.create_balance_definition(
- pid="pid",
- name="name",
- unit="POINTS",
- )
+ client.balance.create_balance_definition(pid="pid", name="name", unit="POINTS")
verify_request_count(test_id, "POST", "/loyalty/balance/programs/pid/balance-definitions", None, 1)
@@ -45,10 +35,7 @@ def test_balance_get_balance_definition() -> None:
"""Test getBalanceDefinition endpoint with WireMock"""
test_id = "balance.get_balance_definition.0"
client = get_client(test_id)
- client.balance.get_balance_definition(
- pid="pid",
- bdid="bdid",
- )
+ client.balance.get_balance_definition(pid="pid", bdid="bdid")
verify_request_count(test_id, "GET", "/loyalty/balance/programs/pid/balance-definitions/bdid", None, 1)
@@ -56,12 +43,7 @@ def test_balance_update_balance_definition() -> None:
"""Test updateBalanceDefinition endpoint with WireMock"""
test_id = "balance.update_balance_definition.0"
client = get_client(test_id)
- client.balance.update_balance_definition(
- pid="pid",
- bdid="bdid",
- name="name",
- unit="POINTS",
- )
+ client.balance.update_balance_definition(pid="pid", bdid="bdid", name="name", unit="POINTS")
verify_request_count(test_id, "PUT", "/loyalty/balance/programs/pid/balance-definitions/bdid", None, 1)
@@ -69,10 +51,7 @@ def test_balance_delete_balance_definition() -> None:
"""Test deleteBalanceDefinition endpoint with WireMock"""
test_id = "balance.delete_balance_definition.0"
client = get_client(test_id)
- client.balance.delete_balance_definition(
- pid="pid",
- bdid="bdid",
- )
+ client.balance.delete_balance_definition(pid="pid", bdid="bdid")
verify_request_count(test_id, "DELETE", "/loyalty/balance/programs/pid/balance-definitions/bdid", None, 1)
@@ -96,11 +75,7 @@ def test_balance_get_balance_limit() -> None:
"""Test getBalanceLimit endpoint with WireMock"""
test_id = "balance.get_balance_limit.0"
client = get_client(test_id)
- client.balance.get_balance_limit(
- pid="pid",
- bdid="bdid",
- blid="blid",
- )
+ client.balance.get_balance_limit(pid="pid", bdid="bdid", blid="blid")
verify_request_count(test_id, "GET", "/loyalty/balance/programs/pid/balance-definitions/bdid/limits/blid", None, 1)
@@ -125,11 +100,7 @@ def test_balance_delete_balance_limit() -> None:
"""Test deleteBalanceLimit endpoint with WireMock"""
test_id = "balance.delete_balance_limit.0"
client = get_client(test_id)
- client.balance.delete_balance_limit(
- pid="pid",
- bdid="bdid",
- blid="blid",
- )
+ client.balance.delete_balance_limit(pid="pid", bdid="bdid", blid="blid")
verify_request_count(
test_id, "DELETE", "/loyalty/balance/programs/pid/balance-definitions/bdid/limits/blid", None, 1
)
@@ -139,9 +110,7 @@ def test_balance_get_contact_balances() -> None:
"""Test getContactBalances endpoint with WireMock"""
test_id = "balance.get_contact_balances.0"
client = get_client(test_id)
- client.balance.get_contact_balances(
- pid="pid",
- )
+ client.balance.get_contact_balances(pid="pid")
verify_request_count(test_id, "GET", "/loyalty/balance/programs/pid/contact-balances", None, 1)
@@ -164,10 +133,7 @@ def test_balance_get_subscription_balances() -> None:
"""Test getSubscriptionBalances endpoint with WireMock"""
test_id = "balance.get_subscription_balances.0"
client = get_client(test_id)
- client.balance.get_subscription_balances(
- pid="pid",
- cid="cid",
- )
+ client.balance.get_subscription_balances(pid="pid", cid="cid")
verify_request_count(test_id, "GET", "/loyalty/balance/programs/pid/subscriptions/cid/balances", None, 1)
@@ -175,11 +141,7 @@ def test_balance_create_subscription_balances() -> None:
"""Test createSubscriptionBalances endpoint with WireMock"""
test_id = "balance.create_subscription_balances.0"
client = get_client(test_id)
- client.balance.create_subscription_balances(
- pid="pid",
- cid="cid",
- balance_definition_id="balanceDefinitionId",
- )
+ client.balance.create_subscription_balances(pid="pid", cid="cid", balance_definition_id="balanceDefinitionId")
verify_request_count(test_id, "POST", "/loyalty/balance/programs/pid/subscriptions/cid/balances", None, 1)
@@ -187,11 +149,7 @@ def test_balance_get_transaction_history_api() -> None:
"""Test getTransactionHistoryApi endpoint with WireMock"""
test_id = "balance.get_transaction_history_api.0"
client = get_client(test_id)
- client.balance.get_transaction_history_api(
- pid="pid",
- contact_id=1,
- balance_definition_id="balanceDefinitionId",
- )
+ client.balance.get_transaction_history_api(pid="pid", contact_id=1, balance_definition_id="balanceDefinitionId")
verify_request_count(
test_id,
"GET",
@@ -205,11 +163,7 @@ def test_balance_begin_transaction() -> None:
"""Test beginTransaction endpoint with WireMock"""
test_id = "balance.begin_transaction.0"
client = get_client(test_id)
- client.balance.begin_transaction(
- pid="pid",
- amount=1.1,
- balance_definition_id="balanceDefinitionId",
- )
+ client.balance.begin_transaction(pid="pid", amount=1.1, balance_definition_id="balanceDefinitionId")
verify_request_count(test_id, "POST", "/loyalty/balance/programs/pid/transactions", None, 1)
@@ -217,10 +171,7 @@ def test_balance_cancel_transaction() -> None:
"""Test cancelTransaction endpoint with WireMock"""
test_id = "balance.cancel_transaction.0"
client = get_client(test_id)
- client.balance.cancel_transaction(
- pid="pid",
- tid="tid",
- )
+ client.balance.cancel_transaction(pid="pid", tid="tid")
verify_request_count(test_id, "POST", "/loyalty/balance/programs/pid/transactions/tid/cancel", None, 1)
@@ -228,8 +179,5 @@ def test_balance_complete_transaction() -> None:
"""Test completeTransaction endpoint with WireMock"""
test_id = "balance.complete_transaction.0"
client = get_client(test_id)
- client.balance.complete_transaction(
- pid="pid",
- tid="tid",
- )
+ client.balance.complete_transaction(pid="pid", tid="tid")
verify_request_count(test_id, "POST", "/loyalty/balance/programs/pid/transactions/tid/complete", None, 1)
diff --git a/tests/wire/test_companies.py b/tests/wire/test_companies.py
index 3d6e396..4a7b98f 100644
--- a/tests/wire/test_companies.py
+++ b/tests/wire/test_companies.py
@@ -13,9 +13,7 @@ def test_companies_create_a_company() -> None:
"""Test createACompany endpoint with WireMock"""
test_id = "companies.create_a_company.0"
client = get_client(test_id)
- client.companies.create_a_company(
- name="company",
- )
+ client.companies.create_a_company(name="company")
verify_request_count(test_id, "POST", "/companies", None, 1)
@@ -23,9 +21,7 @@ def test_companies_import_companies_creation_and_updation() -> None:
"""Test importCompaniesCreationAndUpdation endpoint with WireMock"""
test_id = "companies.import_companies_creation_and_updation.0"
client = get_client(test_id)
- client.companies.import_companies_creation_and_updation(
- file="example_file",
- )
+ client.companies.import_companies_creation_and_updation(file="example_file")
verify_request_count(test_id, "POST", "/companies/import", None, 1)
@@ -33,9 +29,7 @@ def test_companies_link_and_unlink_company_with_contact_and_deal() -> None:
"""Test linkAndUnlinkCompanyWithContactAndDeal endpoint with WireMock"""
test_id = "companies.link_and_unlink_company_with_contact_and_deal.0"
client = get_client(test_id)
- client.companies.link_and_unlink_company_with_contact_and_deal(
- id="id",
- )
+ client.companies.link_and_unlink_company_with_contact_and_deal(id="id")
verify_request_count(test_id, "PATCH", "/companies/link-unlink/id", None, 1)
@@ -43,9 +37,7 @@ def test_companies_get_a_company() -> None:
"""Test getACompany endpoint with WireMock"""
test_id = "companies.get_a_company.0"
client = get_client(test_id)
- client.companies.get_a_company(
- id="id",
- )
+ client.companies.get_a_company(id="id")
verify_request_count(test_id, "GET", "/companies/id", None, 1)
@@ -53,9 +45,7 @@ def test_companies_delete_a_company() -> None:
"""Test deleteACompany endpoint with WireMock"""
test_id = "companies.delete_a_company.0"
client = get_client(test_id)
- client.companies.delete_a_company(
- id="id",
- )
+ client.companies.delete_a_company(id="id")
verify_request_count(test_id, "DELETE", "/companies/id", None, 1)
@@ -63,9 +53,7 @@ def test_companies_update_a_company() -> None:
"""Test updateACompany endpoint with WireMock"""
test_id = "companies.update_a_company.0"
client = get_client(test_id)
- client.companies.update_a_company(
- id="id",
- )
+ client.companies.update_a_company(id="id")
verify_request_count(test_id, "PATCH", "/companies/id", None, 1)
@@ -74,9 +62,7 @@ def test_companies_create_a_company_deal_attribute() -> None:
test_id = "companies.create_a_company_deal_attribute.0"
client = get_client(test_id)
client.companies.create_a_company_deal_attribute(
- attribute_type="text",
- label="Attribute Label",
- object_type="companies",
+ attribute_type="text", label="Attribute Label", object_type="companies"
)
verify_request_count(test_id, "POST", "/crm/attributes", None, 1)
@@ -85,9 +71,7 @@ def test_companies_delete_an_attribute() -> None:
"""Test deleteAnAttribute endpoint with WireMock"""
test_id = "companies.delete_an_attribute.0"
client = get_client(test_id)
- client.companies.delete_an_attribute(
- id="id",
- )
+ client.companies.delete_an_attribute(id="id")
verify_request_count(test_id, "DELETE", "/crm/attributes/id", None, 1)
@@ -95,9 +79,7 @@ def test_companies_update_an_attribute() -> None:
"""Test updateAnAttribute endpoint with WireMock"""
test_id = "companies.update_an_attribute.0"
client = get_client(test_id)
- client.companies.update_an_attribute(
- id="id",
- )
+ client.companies.update_an_attribute(id="id")
verify_request_count(test_id, "PATCH", "/crm/attributes/id", None, 1)
diff --git a/tests/wire/test_contacts.py b/tests/wire/test_contacts.py
index ddad1ca..ec295a8 100644
--- a/tests/wire/test_contacts.py
+++ b/tests/wire/test_contacts.py
@@ -1,11 +1,5 @@
from .conftest import get_client, verify_request_count
-from brevo.contacts import (
- AddContactToListRequestBodyEmails,
- RemoveContactFromListRequestBodyEmails,
- RequestContactExportRequestCustomContactFilter,
-)
-
def test_contacts_get_contacts() -> None:
"""Test getContacts endpoint with WireMock"""
@@ -35,10 +29,7 @@ def test_contacts_create_attribute() -> None:
"""Test createAttribute endpoint with WireMock"""
test_id = "contacts.create_attribute.0"
client = get_client(test_id)
- client.contacts.create_attribute(
- attribute_category="normal",
- attribute_name="attributeName",
- )
+ client.contacts.create_attribute(attribute_category="normal", attribute_name="attributeName")
verify_request_count(test_id, "POST", "/contacts/attributes/normal/attributeName", None, 1)
@@ -46,10 +37,7 @@ def test_contacts_update_attribute() -> None:
"""Test updateAttribute endpoint with WireMock"""
test_id = "contacts.update_attribute.0"
client = get_client(test_id)
- client.contacts.update_attribute(
- attribute_category="category",
- attribute_name="attributeName",
- )
+ client.contacts.update_attribute(attribute_category="category", attribute_name="attributeName")
verify_request_count(test_id, "PUT", "/contacts/attributes/category/attributeName", None, 1)
@@ -57,10 +45,7 @@ def test_contacts_delete_attribute() -> None:
"""Test deleteAttribute endpoint with WireMock"""
test_id = "contacts.delete_attribute.0"
client = get_client(test_id)
- client.contacts.delete_attribute(
- attribute_category="normal",
- attribute_name="attributeName",
- )
+ client.contacts.delete_attribute(attribute_category="normal", attribute_name="attributeName")
verify_request_count(test_id, "DELETE", "/contacts/attributes/normal/attributeName", None, 1)
@@ -94,10 +79,7 @@ def test_contacts_create_doi_contact() -> None:
test_id = "contacts.create_doi_contact.0"
client = get_client(test_id)
client.contacts.create_doi_contact(
- email="elly@example.com",
- include_list_ids=[36],
- redirection_url="http://requestb.in/173lyyx1",
- template_id=2,
+ email="elly@example.com", include_list_ids=[36], redirection_url="http://requestb.in/173lyyx1", template_id=2
)
verify_request_count(test_id, "POST", "/contacts/doubleOptinConfirmation", None, 1)
@@ -106,9 +88,7 @@ def test_contacts_request_contact_export() -> None:
"""Test requestContactExport endpoint with WireMock"""
test_id = "contacts.request_contact_export.0"
client = get_client(test_id)
- client.contacts.request_contact_export(
- custom_contact_filter=RequestContactExportRequestCustomContactFilter(),
- )
+ client.contacts.request_contact_export(custom_contact_filter={})
verify_request_count(test_id, "POST", "/contacts/export", None, 1)
@@ -132,9 +112,7 @@ def test_contacts_get_folder() -> None:
"""Test getFolder endpoint with WireMock"""
test_id = "contacts.get_folder.0"
client = get_client(test_id)
- client.contacts.get_folder(
- folder_id=1000000,
- )
+ client.contacts.get_folder(folder_id=1000000)
verify_request_count(test_id, "GET", "/contacts/folders/1000000", None, 1)
@@ -142,9 +120,7 @@ def test_contacts_update_folder() -> None:
"""Test updateFolder endpoint with WireMock"""
test_id = "contacts.update_folder.0"
client = get_client(test_id)
- client.contacts.update_folder(
- folder_id=1000000,
- )
+ client.contacts.update_folder(folder_id=1000000)
verify_request_count(test_id, "PUT", "/contacts/folders/1000000", None, 1)
@@ -152,9 +128,7 @@ def test_contacts_delete_folder() -> None:
"""Test deleteFolder endpoint with WireMock"""
test_id = "contacts.delete_folder.0"
client = get_client(test_id)
- client.contacts.delete_folder(
- folder_id=1000000,
- )
+ client.contacts.delete_folder(folder_id=1000000)
verify_request_count(test_id, "DELETE", "/contacts/folders/1000000", None, 1)
@@ -162,9 +136,7 @@ def test_contacts_get_folder_lists() -> None:
"""Test getFolderLists endpoint with WireMock"""
test_id = "contacts.get_folder_lists.0"
client = get_client(test_id)
- client.contacts.get_folder_lists(
- folder_id=1000000,
- )
+ client.contacts.get_folder_lists(folder_id=1000000)
verify_request_count(test_id, "GET", "/contacts/folders/1000000/lists", None, 1)
@@ -188,10 +160,7 @@ def test_contacts_create_list() -> None:
"""Test createList endpoint with WireMock"""
test_id = "contacts.create_list.0"
client = get_client(test_id)
- client.contacts.create_list(
- folder_id=2,
- name="Magento Customer - ES",
- )
+ client.contacts.create_list(folder_id=2, name="Magento Customer - ES")
verify_request_count(test_id, "POST", "/contacts/lists", None, 1)
@@ -199,9 +168,7 @@ def test_contacts_get_list() -> None:
"""Test getList endpoint with WireMock"""
test_id = "contacts.get_list.0"
client = get_client(test_id)
- client.contacts.get_list(
- list_id=1000000,
- )
+ client.contacts.get_list(list_id=1000000)
verify_request_count(test_id, "GET", "/contacts/lists/1000000", None, 1)
@@ -209,9 +176,7 @@ def test_contacts_update_list() -> None:
"""Test updateList endpoint with WireMock"""
test_id = "contacts.update_list.0"
client = get_client(test_id)
- client.contacts.update_list(
- list_id=1000000,
- )
+ client.contacts.update_list(list_id=1000000)
verify_request_count(test_id, "PUT", "/contacts/lists/1000000", None, 1)
@@ -219,9 +184,7 @@ def test_contacts_delete_list() -> None:
"""Test deleteList endpoint with WireMock"""
test_id = "contacts.delete_list.0"
client = get_client(test_id)
- client.contacts.delete_list(
- list_id=1000000,
- )
+ client.contacts.delete_list(list_id=1000000)
verify_request_count(test_id, "DELETE", "/contacts/lists/1000000", None, 1)
@@ -229,9 +192,7 @@ def test_contacts_get_contacts_from_list() -> None:
"""Test getContactsFromList endpoint with WireMock"""
test_id = "contacts.get_contacts_from_list.0"
client = get_client(test_id)
- client.contacts.get_contacts_from_list(
- list_id=1000000,
- )
+ client.contacts.get_contacts_from_list(list_id=1000000)
verify_request_count(test_id, "GET", "/contacts/lists/1000000/contacts", None, 1)
@@ -240,10 +201,7 @@ def test_contacts_add_contact_to_list() -> None:
test_id = "contacts.add_contact_to_list.0"
client = get_client(test_id)
client.contacts.add_contact_to_list(
- list_id=1000000,
- request=AddContactToListRequestBodyEmails(
- emails=["jeff32@example.com", "jim56@example.com"],
- ),
+ list_id=1000000, request={"emails": ["jeff32@example.com", "jim56@example.com"]}
)
verify_request_count(test_id, "POST", "/contacts/lists/1000000/contacts/add", None, 1)
@@ -252,10 +210,7 @@ def test_contacts_remove_contact_from_list() -> None:
"""Test removeContactFromList endpoint with WireMock"""
test_id = "contacts.remove_contact_from_list.0"
client = get_client(test_id)
- client.contacts.remove_contact_from_list(
- list_id=1000000,
- request=RemoveContactFromListRequestBodyEmails(),
- )
+ client.contacts.remove_contact_from_list(list_id=1000000, request={})
verify_request_count(test_id, "POST", "/contacts/lists/1000000/contacts/remove", None, 1)
@@ -271,9 +226,7 @@ def test_contacts_get_contact_info() -> None:
"""Test getContactInfo endpoint with WireMock"""
test_id = "contacts.get_contact_info.0"
client = get_client(test_id)
- client.contacts.get_contact_info(
- identifier="identifier",
- )
+ client.contacts.get_contact_info(identifier="identifier")
verify_request_count(test_id, "GET", "/contacts/identifier", None, 1)
@@ -281,9 +234,7 @@ def test_contacts_update_contact() -> None:
"""Test updateContact endpoint with WireMock"""
test_id = "contacts.update_contact.0"
client = get_client(test_id)
- client.contacts.update_contact(
- identifier="identifier",
- )
+ client.contacts.update_contact(identifier="identifier")
verify_request_count(test_id, "PUT", "/contacts/identifier", None, 1)
@@ -291,9 +242,7 @@ def test_contacts_delete_contact() -> None:
"""Test deleteContact endpoint with WireMock"""
test_id = "contacts.delete_contact.0"
client = get_client(test_id)
- client.contacts.delete_contact(
- identifier="identifier",
- )
+ client.contacts.delete_contact(identifier="identifier")
verify_request_count(test_id, "DELETE", "/contacts/identifier", None, 1)
@@ -301,7 +250,5 @@ def test_contacts_get_contact_stats() -> None:
"""Test getContactStats endpoint with WireMock"""
test_id = "contacts.get_contact_stats.0"
client = get_client(test_id)
- client.contacts.get_contact_stats(
- identifier="identifier",
- )
+ client.contacts.get_contact_stats(identifier="identifier")
verify_request_count(test_id, "GET", "/contacts/identifier/campaignStats", None, 1)
diff --git a/tests/wire/test_conversations.py b/tests/wire/test_conversations.py
index 1db3995..3309720 100644
--- a/tests/wire/test_conversations.py
+++ b/tests/wire/test_conversations.py
@@ -5,9 +5,7 @@ def test_conversations_sets_agents_status_to_online_for23minutes() -> None:
"""Test setsAgentsStatusToOnlineFor23Minutes endpoint with WireMock"""
test_id = "conversations.sets_agents_status_to_online_for23minutes.0"
client = get_client(test_id)
- client.conversations.sets_agents_status_to_online_for23minutes(
- agent_id="d9nKoegKSjmCtyK78",
- )
+ client.conversations.sets_agents_status_to_online_for23minutes(agent_id="d9nKoegKSjmCtyK78")
verify_request_count(test_id, "POST", "/conversations/agentOnlinePing", None, 1)
@@ -16,9 +14,7 @@ def test_conversations_send_a_message_as_an_agent() -> None:
test_id = "conversations.send_a_message_as_an_agent.0"
client = get_client(test_id)
client.conversations.send_a_message_as_an_agent(
- agent_id="d9nKoegKSjmCtyK78",
- text="Hello! How can I help you?",
- visitor_id="kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg",
+ agent_id="d9nKoegKSjmCtyK78", text="Hello! How can I help you?", visitor_id="kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg"
)
verify_request_count(test_id, "POST", "/conversations/messages", None, 1)
@@ -27,9 +23,7 @@ def test_conversations_get_a_message() -> None:
"""Test getAMessage endpoint with WireMock"""
test_id = "conversations.get_a_message.0"
client = get_client(test_id)
- client.conversations.get_a_message(
- id="id",
- )
+ client.conversations.get_a_message(id="id")
verify_request_count(test_id, "GET", "/conversations/messages/id", None, 1)
@@ -37,10 +31,7 @@ def test_conversations_update_a_message_sent_by_an_agent() -> None:
"""Test updateAMessageSentByAnAgent endpoint with WireMock"""
test_id = "conversations.update_a_message_sent_by_an_agent.0"
client = get_client(test_id)
- client.conversations.update_a_message_sent_by_an_agent(
- id="id",
- text="Good morning! How can I help you?",
- )
+ client.conversations.update_a_message_sent_by_an_agent(id="id", text="Good morning! How can I help you?")
verify_request_count(test_id, "PUT", "/conversations/messages/id", None, 1)
@@ -48,9 +39,7 @@ def test_conversations_delete_a_message_sent_by_an_agent() -> None:
"""Test deleteAMessageSentByAnAgent endpoint with WireMock"""
test_id = "conversations.delete_a_message_sent_by_an_agent.0"
client = get_client(test_id)
- client.conversations.delete_a_message_sent_by_an_agent(
- id="id",
- )
+ client.conversations.delete_a_message_sent_by_an_agent(id="id")
verify_request_count(test_id, "DELETE", "/conversations/messages/id", None, 1)
@@ -70,9 +59,7 @@ def test_conversations_get_an_automated_message() -> None:
"""Test getAnAutomatedMessage endpoint with WireMock"""
test_id = "conversations.get_an_automated_message.0"
client = get_client(test_id)
- client.conversations.get_an_automated_message(
- id="id",
- )
+ client.conversations.get_an_automated_message(id="id")
verify_request_count(test_id, "GET", "/conversations/pushedMessages/id", None, 1)
@@ -81,8 +68,7 @@ def test_conversations_update_an_automated_message() -> None:
test_id = "conversations.update_an_automated_message.0"
client = get_client(test_id)
client.conversations.update_an_automated_message(
- id="id",
- text="Your order has shipped! Hereβs your tracking number: 9114 5847 4668 7775 9233 54",
+ id="id", text="Your order has shipped! Hereβs your tracking number: 9114 5847 4668 7775 9233 54"
)
verify_request_count(test_id, "PUT", "/conversations/pushedMessages/id", None, 1)
@@ -91,9 +77,7 @@ def test_conversations_delete_an_automated_message() -> None:
"""Test deleteAnAutomatedMessage endpoint with WireMock"""
test_id = "conversations.delete_an_automated_message.0"
client = get_client(test_id)
- client.conversations.delete_an_automated_message(
- id="id",
- )
+ client.conversations.delete_an_automated_message(id="id")
verify_request_count(test_id, "DELETE", "/conversations/pushedMessages/id", None, 1)
@@ -101,7 +85,5 @@ def test_conversations_set_visitor_group_assignment() -> None:
"""Test setVisitorGroupAssignment endpoint with WireMock"""
test_id = "conversations.set_visitor_group_assignment.0"
client = get_client(test_id)
- client.conversations.set_visitor_group_assignment(
- group_id="PjRBMhWGen6aRHjif",
- )
+ client.conversations.set_visitor_group_assignment(group_id="PjRBMhWGen6aRHjif")
verify_request_count(test_id, "PUT", "/conversations/visitorGroup", None, 1)
diff --git a/tests/wire/test_coupons.py b/tests/wire/test_coupons.py
index ba9e361..fd2ed86 100644
--- a/tests/wire/test_coupons.py
+++ b/tests/wire/test_coupons.py
@@ -13,10 +13,7 @@ def test_coupons_create_coupon_collection() -> None:
"""Test createCouponCollection endpoint with WireMock"""
test_id = "coupons.create_coupon_collection.0"
client = get_client(test_id)
- client.coupons.create_coupon_collection(
- default_coupon="Winter",
- name="10%OFF",
- )
+ client.coupons.create_coupon_collection(default_coupon="Winter", name="10%OFF")
verify_request_count(test_id, "POST", "/couponCollections", None, 1)
@@ -24,9 +21,7 @@ def test_coupons_get_coupon_collection() -> None:
"""Test getCouponCollection endpoint with WireMock"""
test_id = "coupons.get_coupon_collection.0"
client = get_client(test_id)
- client.coupons.get_coupon_collection(
- id="id",
- )
+ client.coupons.get_coupon_collection(id="id")
verify_request_count(test_id, "GET", "/couponCollections/id", None, 1)
@@ -34,9 +29,7 @@ def test_coupons_update_coupon_collection() -> None:
"""Test updateCouponCollection endpoint with WireMock"""
test_id = "coupons.update_coupon_collection.0"
client = get_client(test_id)
- client.coupons.update_coupon_collection(
- id="id",
- )
+ client.coupons.update_coupon_collection(id="id")
verify_request_count(test_id, "PATCH", "/couponCollections/id", None, 1)
@@ -44,8 +37,5 @@ def test_coupons_create_coupons() -> None:
"""Test createCoupons endpoint with WireMock"""
test_id = "coupons.create_coupons.0"
client = get_client(test_id)
- client.coupons.create_coupons(
- collection_id="23befbae-1505-47a8-bd27-e30ef739f32c",
- coupons=["Uf12AF"],
- )
+ client.coupons.create_coupons(collection_id="23befbae-1505-47a8-bd27-e30ef739f32c", coupons=["Uf12AF"])
verify_request_count(test_id, "POST", "/coupons", None, 1)
diff --git a/tests/wire/test_customObjects.py b/tests/wire/test_customObjects.py
index 739814b..2333fd6 100644
--- a/tests/wire/test_customObjects.py
+++ b/tests/wire/test_customObjects.py
@@ -1,16 +1,11 @@
from .conftest import get_client, verify_request_count
-from brevo.custom_objects import BatchDeleteObjectRecordsRequestIdentifiersIds, UpsertrecordsRequestRecordsItem
-
def test_customObjects_upsertrecords() -> None:
"""Test upsertrecords endpoint with WireMock"""
test_id = "custom_objects.upsertrecords.0"
client = get_client(test_id)
- client.custom_objects.upsertrecords(
- object_type="vehicle",
- records=[UpsertrecordsRequestRecordsItem()],
- )
+ client.custom_objects.upsertrecords(object_type="vehicle", records=[{}])
verify_request_count(test_id, "POST", "/objects/vehicle/batch/upsert", None, 1)
@@ -18,11 +13,7 @@ def test_customObjects_getrecords() -> None:
"""Test getrecords endpoint with WireMock"""
test_id = "custom_objects.getrecords.0"
client = get_client(test_id)
- client.custom_objects.getrecords(
- object_type="vehicle",
- limit=1000000,
- page_num=1000000,
- )
+ client.custom_objects.getrecords(object_type="vehicle", limit=1000000, page_num=1000000)
verify_request_count(test_id, "GET", "/objects/vehicle/records", {"limit": "1000000", "page_num": "1000000"}, 1)
@@ -30,8 +21,5 @@ def test_customObjects_batch_delete_object_records() -> None:
"""Test batchDeleteObjectRecords endpoint with WireMock"""
test_id = "custom_objects.batch_delete_object_records.0"
client = get_client(test_id)
- client.custom_objects.batch_delete_object_records(
- object_type="vehicle",
- identifiers=BatchDeleteObjectRecordsRequestIdentifiersIds(ids=[1, 2, 3]),
- )
+ client.custom_objects.batch_delete_object_records(object_type="vehicle", identifiers={})
verify_request_count(test_id, "POST", "/objects/vehicle/batch/delete", None, 1)
diff --git a/tests/wire/test_deals.py b/tests/wire/test_deals.py
index eef3bdf..7f69bc1 100644
--- a/tests/wire/test_deals.py
+++ b/tests/wire/test_deals.py
@@ -21,9 +21,7 @@ def test_deals_create_a_deal() -> None:
"""Test createADeal endpoint with WireMock"""
test_id = "deals.create_a_deal.0"
client = get_client(test_id)
- client.deals.create_a_deal(
- name="Deal: Connect with company",
- )
+ client.deals.create_a_deal(name="Deal: Connect with company")
verify_request_count(test_id, "POST", "/crm/deals", None, 1)
@@ -31,9 +29,7 @@ def test_deals_import_deals_creation_and_updation() -> None:
"""Test importDealsCreationAndUpdation endpoint with WireMock"""
test_id = "deals.import_deals_creation_and_updation.0"
client = get_client(test_id)
- client.deals.import_deals_creation_and_updation(
- file="example_file",
- )
+ client.deals.import_deals_creation_and_updation(file="example_file")
verify_request_count(test_id, "POST", "/crm/deals/import", None, 1)
@@ -41,9 +37,7 @@ def test_deals_link_and_unlink_a_deal_with_contacts_and_companies() -> None:
"""Test linkAndUnlinkADealWithContactsAndCompanies endpoint with WireMock"""
test_id = "deals.link_and_unlink_a_deal_with_contacts_and_companies.0"
client = get_client(test_id)
- client.deals.link_and_unlink_a_deal_with_contacts_and_companies(
- id="id",
- )
+ client.deals.link_and_unlink_a_deal_with_contacts_and_companies(id="id")
verify_request_count(test_id, "PATCH", "/crm/deals/link-unlink/id", None, 1)
@@ -51,9 +45,7 @@ def test_deals_get_a_deal() -> None:
"""Test getADeal endpoint with WireMock"""
test_id = "deals.get_a_deal.0"
client = get_client(test_id)
- client.deals.get_a_deal(
- id="id",
- )
+ client.deals.get_a_deal(id="id")
verify_request_count(test_id, "GET", "/crm/deals/id", None, 1)
@@ -61,9 +53,7 @@ def test_deals_delete_a_deal() -> None:
"""Test deleteADeal endpoint with WireMock"""
test_id = "deals.delete_a_deal.0"
client = get_client(test_id)
- client.deals.delete_a_deal(
- id="id",
- )
+ client.deals.delete_a_deal(id="id")
verify_request_count(test_id, "DELETE", "/crm/deals/id", None, 1)
@@ -71,9 +61,7 @@ def test_deals_update_a_deal() -> None:
"""Test updateADeal endpoint with WireMock"""
test_id = "deals.update_a_deal.0"
client = get_client(test_id)
- client.deals.update_a_deal(
- id="id",
- )
+ client.deals.update_a_deal(id="id")
verify_request_count(test_id, "PATCH", "/crm/deals/id", None, 1)
@@ -97,7 +85,5 @@ def test_deals_get_a_pipeline() -> None:
"""Test getAPipeline endpoint with WireMock"""
test_id = "deals.get_a_pipeline.0"
client = get_client(test_id)
- client.deals.get_a_pipeline(
- pipeline_id="pipelineID",
- )
+ client.deals.get_a_pipeline(pipeline_id="pipelineID")
verify_request_count(test_id, "GET", "/crm/pipeline/details/pipelineID", None, 1)
diff --git a/tests/wire/test_domains.py b/tests/wire/test_domains.py
index debd137..476fef2 100644
--- a/tests/wire/test_domains.py
+++ b/tests/wire/test_domains.py
@@ -13,9 +13,7 @@ def test_domains_create_domain() -> None:
"""Test createDomain endpoint with WireMock"""
test_id = "domains.create_domain.0"
client = get_client(test_id)
- client.domains.create_domain(
- name="mycompany.com",
- )
+ client.domains.create_domain(name="mycompany.com")
verify_request_count(test_id, "POST", "/senders/domains", None, 1)
@@ -23,9 +21,7 @@ def test_domains_get_domain_configuration() -> None:
"""Test getDomainConfiguration endpoint with WireMock"""
test_id = "domains.get_domain_configuration.0"
client = get_client(test_id)
- client.domains.get_domain_configuration(
- domain_name="domainName",
- )
+ client.domains.get_domain_configuration(domain_name="domainName")
verify_request_count(test_id, "GET", "/senders/domains/domainName", None, 1)
@@ -33,9 +29,7 @@ def test_domains_delete_domain() -> None:
"""Test deleteDomain endpoint with WireMock"""
test_id = "domains.delete_domain.0"
client = get_client(test_id)
- client.domains.delete_domain(
- domain_name="domainName",
- )
+ client.domains.delete_domain(domain_name="domainName")
verify_request_count(test_id, "DELETE", "/senders/domains/domainName", None, 1)
@@ -43,7 +37,5 @@ def test_domains_authenticate_domain() -> None:
"""Test authenticateDomain endpoint with WireMock"""
test_id = "domains.authenticate_domain.0"
client = get_client(test_id)
- client.domains.authenticate_domain(
- domain_name="domainName",
- )
+ client.domains.authenticate_domain(domain_name="domainName")
verify_request_count(test_id, "PUT", "/senders/domains/domainName/authenticate", None, 1)
diff --git a/tests/wire/test_ecommerce.py b/tests/wire/test_ecommerce.py
index be1d947..a8201c7 100644
--- a/tests/wire/test_ecommerce.py
+++ b/tests/wire/test_ecommerce.py
@@ -1,10 +1,7 @@
-import datetime
+from datetime import datetime
from .conftest import get_client, verify_request_count
-from brevo import Order, OrderProductsItem
-from brevo.ecommerce import CreateUpdateBatchCategoryRequestCategoriesItem, CreateUpdateBatchProductsRequestProductsItem
-
def test_ecommerce_get_categories() -> None:
"""Test getCategories endpoint with WireMock"""
@@ -18,9 +15,7 @@ def test_ecommerce_create_update_category() -> None:
"""Test createUpdateCategory endpoint with WireMock"""
test_id = "ecommerce.create_update_category.0"
client = get_client(test_id)
- client.ecommerce.create_update_category(
- id="CAT123",
- )
+ client.ecommerce.create_update_category(id="CAT123")
verify_request_count(test_id, "POST", "/categories", None, 1)
@@ -28,13 +23,7 @@ def test_ecommerce_create_update_batch_category() -> None:
"""Test createUpdateBatchCategory endpoint with WireMock"""
test_id = "ecommerce.create_update_batch_category.0"
client = get_client(test_id)
- client.ecommerce.create_update_batch_category(
- categories=[
- CreateUpdateBatchCategoryRequestCategoriesItem(
- id="CAT123",
- )
- ],
- )
+ client.ecommerce.create_update_batch_category(categories=[{"id": "CAT123"}])
verify_request_count(test_id, "POST", "/categories/batch", None, 1)
@@ -42,9 +31,7 @@ def test_ecommerce_get_category_info() -> None:
"""Test getCategoryInfo endpoint with WireMock"""
test_id = "ecommerce.get_category_info.0"
client = get_client(test_id)
- client.ecommerce.get_category_info(
- id="id",
- )
+ client.ecommerce.get_category_info(id="id")
verify_request_count(test_id, "GET", "/categories/id", None, 1)
@@ -61,8 +48,8 @@ def test_ecommerce_get_attribution_metrics_for_one_or_more_brevo_campaigns_or_wo
test_id = "ecommerce.get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows.0"
client = get_client(test_id)
client.ecommerce.get_attribution_metrics_for_one_or_more_brevo_campaigns_or_workflows(
- period_from=datetime.datetime.fromisoformat("2022-01-02T00:00:00+00:00"),
- period_to=datetime.datetime.fromisoformat("2022-01-03T00:00:00+00:00"),
+ period_from=datetime.fromisoformat("2022-01-02T00:00:00+00:00"),
+ period_to=datetime.fromisoformat("2022-01-03T00:00:00+00:00"),
)
verify_request_count(
test_id,
@@ -78,8 +65,7 @@ def test_ecommerce_get_detailed_attribution_metrics_for_a_single_brevo_campaign_
test_id = "ecommerce.get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workflow.0"
client = get_client(test_id)
client.ecommerce.get_detailed_attribution_metrics_for_a_single_brevo_campaign_or_workflow(
- conversion_source="email_campaign",
- conversion_source_id="sale",
+ conversion_source="email_campaign", conversion_source_id="sale"
)
verify_request_count(test_id, "GET", "/ecommerce/attribution/metrics/email_campaign/sale", None, 1)
@@ -89,8 +75,7 @@ def test_ecommerce_get_attributed_product_sales_for_a_single_brevo_campaign_or_w
test_id = "ecommerce.get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow.0"
client = get_client(test_id)
client.ecommerce.get_attributed_product_sales_for_a_single_brevo_campaign_or_workflow(
- conversion_source="email_campaign",
- conversion_source_id="sale",
+ conversion_source="email_campaign", conversion_source_id="sale"
)
verify_request_count(test_id, "GET", "/ecommerce/attribution/products/email_campaign/sale", None, 1)
@@ -107,9 +92,7 @@ def test_ecommerce_set_config_display_currency() -> None:
"""Test setConfigDisplayCurrency endpoint with WireMock"""
test_id = "ecommerce.set_config_display_currency.0"
client = get_client(test_id)
- client.ecommerce.set_config_display_currency(
- code="EUR",
- )
+ client.ecommerce.set_config_display_currency(code="EUR")
verify_request_count(test_id, "POST", "/ecommerce/config/displayCurrency", None, 1)
@@ -129,12 +112,7 @@ def test_ecommerce_create_order() -> None:
amount=308.42,
created_at="2021-07-29T20:59:23.383Z",
id="14",
- products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
- )
- ],
+ products=[{"quantity": 10}],
status="completed",
updated_at="2021-07-30T10:59:23.383Z",
)
@@ -147,20 +125,15 @@ def test_ecommerce_create_batch_order() -> None:
client = get_client(test_id)
client.ecommerce.create_batch_order(
orders=[
- Order(
- amount=308.42,
- created_at="2021-07-29T20:59:23.383Z",
- id="14",
- products=[
- OrderProductsItem(
- price=99.99,
- product_id="P1",
- )
- ],
- status="completed",
- updated_at="2021-07-30T10:59:23.383Z",
- )
- ],
+ {
+ "amount": 308.42,
+ "created_at": "2021-07-29T20:59:23.383Z",
+ "id": "14",
+ "products": [{"quantity": 10}],
+ "status": "completed",
+ "updated_at": "2021-07-30T10:59:23.383Z",
+ }
+ ]
)
verify_request_count(test_id, "POST", "/orders/status/batch", None, 1)
@@ -177,10 +150,7 @@ def test_ecommerce_create_update_product() -> None:
"""Test createUpdateProduct endpoint with WireMock"""
test_id = "ecommerce.create_update_product.0"
client = get_client(test_id)
- client.ecommerce.create_update_product(
- id="P11",
- name="Iphone 11",
- )
+ client.ecommerce.create_update_product(id="P11", name="Iphone 11")
verify_request_count(test_id, "POST", "/products", None, 1)
@@ -188,14 +158,7 @@ def test_ecommerce_create_update_batch_products() -> None:
"""Test createUpdateBatchProducts endpoint with WireMock"""
test_id = "ecommerce.create_update_batch_products.0"
client = get_client(test_id)
- client.ecommerce.create_update_batch_products(
- products=[
- CreateUpdateBatchProductsRequestProductsItem(
- id="P11",
- name="Iphone 11",
- )
- ],
- )
+ client.ecommerce.create_update_batch_products(products=[{"id": "P11", "name": "Iphone 11"}])
verify_request_count(test_id, "POST", "/products/batch", None, 1)
@@ -203,9 +166,7 @@ def test_ecommerce_get_product_info() -> None:
"""Test getProductInfo endpoint with WireMock"""
test_id = "ecommerce.get_product_info.0"
client = get_client(test_id)
- client.ecommerce.get_product_info(
- id="id",
- )
+ client.ecommerce.get_product_info(id="id")
verify_request_count(test_id, "GET", "/products/id", None, 1)
@@ -213,7 +174,5 @@ def test_ecommerce_create_product_alert() -> None:
"""Test createProductAlert endpoint with WireMock"""
test_id = "ecommerce.create_product_alert.0"
client = get_client(test_id)
- client.ecommerce.create_product_alert(
- id="id",
- )
+ client.ecommerce.create_product_alert(id="id")
verify_request_count(test_id, "POST", "/products/id/alerts/back_in_stock", None, 1)
diff --git a/tests/wire/test_emailCampaigns.py b/tests/wire/test_emailCampaigns.py
index a33cfd3..e4ba446 100644
--- a/tests/wire/test_emailCampaigns.py
+++ b/tests/wire/test_emailCampaigns.py
@@ -1,8 +1,5 @@
from .conftest import get_client, verify_request_count
-from brevo import SendReportEmail
-from brevo.email_campaigns import CreateEmailCampaignRequestSender
-
def test_emailCampaigns_get_email_campaigns() -> None:
"""Test getEmailCampaigns endpoint with WireMock"""
@@ -16,10 +13,7 @@ def test_emailCampaigns_create_email_campaign() -> None:
"""Test createEmailCampaign endpoint with WireMock"""
test_id = "email_campaigns.create_email_campaign.0"
client = get_client(test_id)
- client.email_campaigns.create_email_campaign(
- name="Newsletter - May 2017",
- sender=CreateEmailCampaignRequestSender(),
- )
+ client.email_campaigns.create_email_campaign(name="Newsletter - May 2017", sender={})
verify_request_count(test_id, "POST", "/emailCampaigns", None, 1)
@@ -27,9 +21,7 @@ def test_emailCampaigns_upload_image_to_gallery() -> None:
"""Test uploadImageToGallery endpoint with WireMock"""
test_id = "email_campaigns.upload_image_to_gallery.0"
client = get_client(test_id)
- client.email_campaigns.upload_image_to_gallery(
- image_url="https://somedomain.com/image1.jpg",
- )
+ client.email_campaigns.upload_image_to_gallery(image_url="https://somedomain.com/image1.jpg")
verify_request_count(test_id, "POST", "/emailCampaigns/images", None, 1)
@@ -37,9 +29,7 @@ def test_emailCampaigns_get_email_campaign() -> None:
"""Test getEmailCampaign endpoint with WireMock"""
test_id = "email_campaigns.get_email_campaign.0"
client = get_client(test_id)
- client.email_campaigns.get_email_campaign(
- campaign_id=1000000,
- )
+ client.email_campaigns.get_email_campaign(campaign_id=1000000)
verify_request_count(test_id, "GET", "/emailCampaigns/1000000", None, 1)
@@ -47,9 +37,7 @@ def test_emailCampaigns_update_email_campaign() -> None:
"""Test updateEmailCampaign endpoint with WireMock"""
test_id = "email_campaigns.update_email_campaign.0"
client = get_client(test_id)
- client.email_campaigns.update_email_campaign(
- campaign_id=1000000,
- )
+ client.email_campaigns.update_email_campaign(campaign_id=1000000)
verify_request_count(test_id, "PUT", "/emailCampaigns/1000000", None, 1)
@@ -57,9 +45,7 @@ def test_emailCampaigns_delete_email_campaign() -> None:
"""Test deleteEmailCampaign endpoint with WireMock"""
test_id = "email_campaigns.delete_email_campaign.0"
client = get_client(test_id)
- client.email_campaigns.delete_email_campaign(
- campaign_id=1000000,
- )
+ client.email_campaigns.delete_email_campaign(campaign_id=1000000)
verify_request_count(test_id, "DELETE", "/emailCampaigns/1000000", None, 1)
@@ -67,9 +53,7 @@ def test_emailCampaigns_get_ab_test_campaign_result() -> None:
"""Test getAbTestCampaignResult endpoint with WireMock"""
test_id = "email_campaigns.get_ab_test_campaign_result.0"
client = get_client(test_id)
- client.email_campaigns.get_ab_test_campaign_result(
- campaign_id=1000000,
- )
+ client.email_campaigns.get_ab_test_campaign_result(campaign_id=1000000)
verify_request_count(test_id, "GET", "/emailCampaigns/1000000/abTestCampaignResult", None, 1)
@@ -77,10 +61,7 @@ def test_emailCampaigns_email_export_recipients() -> None:
"""Test emailExportRecipients endpoint with WireMock"""
test_id = "email_campaigns.email_export_recipients.0"
client = get_client(test_id)
- client.email_campaigns.email_export_recipients(
- campaign_id=1000000,
- recipients_type="all",
- )
+ client.email_campaigns.email_export_recipients(campaign_id=1000000, recipients_type="all")
verify_request_count(test_id, "POST", "/emailCampaigns/1000000/exportRecipients", None, 1)
@@ -88,9 +69,7 @@ def test_emailCampaigns_send_email_campaign_now() -> None:
"""Test sendEmailCampaignNow endpoint with WireMock"""
test_id = "email_campaigns.send_email_campaign_now.0"
client = get_client(test_id)
- client.email_campaigns.send_email_campaign_now(
- campaign_id=1000000,
- )
+ client.email_campaigns.send_email_campaign_now(campaign_id=1000000)
verify_request_count(test_id, "POST", "/emailCampaigns/1000000/sendNow", None, 1)
@@ -100,10 +79,7 @@ def test_emailCampaigns_send_report() -> None:
client = get_client(test_id)
client.email_campaigns.send_report(
campaign_id=1000000,
- email=SendReportEmail(
- body="Please find attached the report of our last email campaign.",
- to=["jim.suehan@example.com"],
- ),
+ email={"body": "Please find attached the report of our last email campaign.", "to": ["jim.suehan@example.com"]},
)
verify_request_count(test_id, "POST", "/emailCampaigns/1000000/sendReport", None, 1)
@@ -112,9 +88,7 @@ def test_emailCampaigns_send_test_email() -> None:
"""Test sendTestEmail endpoint with WireMock"""
test_id = "email_campaigns.send_test_email.0"
client = get_client(test_id)
- client.email_campaigns.send_test_email(
- campaign_id=1000000,
- )
+ client.email_campaigns.send_test_email(campaign_id=1000000)
verify_request_count(test_id, "POST", "/emailCampaigns/1000000/sendTest", None, 1)
@@ -122,9 +96,7 @@ def test_emailCampaigns_get_shared_template_url() -> None:
"""Test getSharedTemplateUrl endpoint with WireMock"""
test_id = "email_campaigns.get_shared_template_url.0"
client = get_client(test_id)
- client.email_campaigns.get_shared_template_url(
- campaign_id=1000000,
- )
+ client.email_campaigns.get_shared_template_url(campaign_id=1000000)
verify_request_count(test_id, "GET", "/emailCampaigns/1000000/sharedUrl", None, 1)
@@ -132,7 +104,5 @@ def test_emailCampaigns_update_campaign_status() -> None:
"""Test updateCampaignStatus endpoint with WireMock"""
test_id = "email_campaigns.update_campaign_status.0"
client = get_client(test_id)
- client.email_campaigns.update_campaign_status(
- campaign_id=1000000,
- )
+ client.email_campaigns.update_campaign_status(campaign_id=1000000)
verify_request_count(test_id, "PUT", "/emailCampaigns/1000000/status", None, 1)
diff --git a/tests/wire/test_event.py b/tests/wire/test_event.py
index 6dbc2a8..9069e3f 100644
--- a/tests/wire/test_event.py
+++ b/tests/wire/test_event.py
@@ -1,33 +1,9 @@
from .conftest import get_client, verify_request_count
-from brevo.event import (
- CreateBatchEventsRequestItem,
- CreateBatchEventsRequestItemIdentifiers,
- CreateEventRequestIdentifiers,
-)
-
def test_event_create_event() -> None:
"""Test createEvent endpoint with WireMock"""
test_id = "event.create_event.0"
client = get_client(test_id)
- client.event.create_event(
- event_name="video_played",
- identifiers=CreateEventRequestIdentifiers(),
- )
+ client.event.create_event(event_name="video_played", identifiers={})
verify_request_count(test_id, "POST", "/events", None, 1)
-
-
-def test_event_create_batch_events() -> None:
- """Test createBatchEvents endpoint with WireMock"""
- test_id = "event.create_batch_events.0"
- client = get_client(test_id)
- client.event.create_batch_events(
- request=[
- CreateBatchEventsRequestItem(
- event_name="order_created",
- identifiers=CreateBatchEventsRequestItemIdentifiers(),
- )
- ],
- )
- verify_request_count(test_id, "POST", "/events/batch", None, 1)
diff --git a/tests/wire/test_externalFeeds.py b/tests/wire/test_externalFeeds.py
index c0a9d0c..a8a51bf 100644
--- a/tests/wire/test_externalFeeds.py
+++ b/tests/wire/test_externalFeeds.py
@@ -1,4 +1,4 @@
-import datetime
+from datetime import date
from .conftest import get_client, verify_request_count
@@ -8,9 +8,7 @@ def test_externalFeeds_get_all_external_feeds() -> None:
test_id = "external_feeds.get_all_external_feeds.0"
client = get_client(test_id)
client.external_feeds.get_all_external_feeds(
- search="product",
- start_date=datetime.date.fromisoformat("2024-01-01"),
- end_date=datetime.date.fromisoformat("2024-01-31"),
+ search="product", start_date=date.fromisoformat("2024-01-01"), end_date=date.fromisoformat("2024-01-31")
)
verify_request_count(
test_id, "GET", "/feeds", {"search": "product", "startDate": "2024-01-01", "endDate": "2024-01-31"}, 1
@@ -35,9 +33,7 @@ def test_externalFeeds_get_external_feed_by_uuid() -> None:
"""Test getExternalFeedByUUID endpoint with WireMock"""
test_id = "external_feeds.get_external_feed_by_uuid.0"
client = get_client(test_id)
- client.external_feeds.get_external_feed_by_uuid(
- uuid_="b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6",
- )
+ client.external_feeds.get_external_feed_by_uuid(uuid_="b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6")
verify_request_count(test_id, "GET", "/feeds/b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6", None, 1)
@@ -57,7 +53,5 @@ def test_externalFeeds_delete_external_feed() -> None:
"""Test deleteExternalFeed endpoint with WireMock"""
test_id = "external_feeds.delete_external_feed.0"
client = get_client(test_id)
- client.external_feeds.delete_external_feed(
- uuid_="b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6",
- )
+ client.external_feeds.delete_external_feed(uuid_="b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6")
verify_request_count(test_id, "DELETE", "/feeds/b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6", None, 1)
diff --git a/tests/wire/test_files.py b/tests/wire/test_files.py
index 6910f41..2a0319e 100644
--- a/tests/wire/test_files.py
+++ b/tests/wire/test_files.py
@@ -13,9 +13,7 @@ def test_files_upload_a_file() -> None:
"""Test uploadAFile endpoint with WireMock"""
test_id = "files.upload_a_file.0"
client = get_client(test_id)
- client.files.upload_a_file(
- file="example_file",
- )
+ client.files.upload_a_file(file="example_file")
verify_request_count(test_id, "POST", "/crm/files", None, 1)
@@ -23,9 +21,7 @@ def test_files_download_a_file() -> None:
"""Test downloadAFile endpoint with WireMock"""
test_id = "files.download_a_file.0"
client = get_client(test_id)
- client.files.download_a_file(
- id="id",
- )
+ client.files.download_a_file(id="id")
verify_request_count(test_id, "GET", "/crm/files/id", None, 1)
@@ -33,9 +29,7 @@ def test_files_delete_a_file() -> None:
"""Test deleteAFile endpoint with WireMock"""
test_id = "files.delete_a_file.0"
client = get_client(test_id)
- client.files.delete_a_file(
- id="id",
- )
+ client.files.delete_a_file(id="id")
verify_request_count(test_id, "DELETE", "/crm/files/id", None, 1)
@@ -43,7 +37,5 @@ def test_files_get_file_details() -> None:
"""Test getFileDetails endpoint with WireMock"""
test_id = "files.get_file_details.0"
client = get_client(test_id)
- client.files.get_file_details(
- id="id",
- )
+ client.files.get_file_details(id="id")
verify_request_count(test_id, "GET", "/crm/files/id/data", None, 1)
diff --git a/tests/wire/test_inboundParsing.py b/tests/wire/test_inboundParsing.py
index 2f8aaa8..345f70b 100644
--- a/tests/wire/test_inboundParsing.py
+++ b/tests/wire/test_inboundParsing.py
@@ -13,9 +13,7 @@ def test_inboundParsing_get_inbound_email_events_by_uuid() -> None:
"""Test getInboundEmailEventsByUuid endpoint with WireMock"""
test_id = "inbound_parsing.get_inbound_email_events_by_uuid.0"
client = get_client(test_id)
- client.inbound_parsing.get_inbound_email_events_by_uuid(
- uuid_="uuid",
- )
+ client.inbound_parsing.get_inbound_email_events_by_uuid(uuid_="uuid")
verify_request_count(test_id, "GET", "/inbound/events/uuid", None, 1)
@@ -23,8 +21,6 @@ def test_inboundParsing_get_inbound_email_attachment() -> None:
"""Test getInboundEmailAttachment endpoint with WireMock"""
test_id = "inbound_parsing.get_inbound_email_attachment.0"
client = get_client(test_id)
- for _ in client.inbound_parsing.get_inbound_email_attachment(
- download_token="downloadToken",
- ):
+ for _ in client.inbound_parsing.get_inbound_email_attachment(download_token="downloadToken"):
pass
verify_request_count(test_id, "GET", "/inbound/attachments/downloadToken", None, 1)
diff --git a/tests/wire/test_masterAccount.py b/tests/wire/test_masterAccount.py
index 46c4ece..5e81add 100644
--- a/tests/wire/test_masterAccount.py
+++ b/tests/wire/test_masterAccount.py
@@ -1,22 +1,11 @@
from .conftest import get_client, verify_request_count
-from brevo.master_account import (
- InviteAdminUserRequestPrivilegesItem,
- PutCorporateSubAccountIdPlanRequestCredits,
- PutCorporateSubAccountIdPlanRequestFeatures,
- PutCorporateSubAccountsPlanRequestCredits,
- PutCorporateSubAccountsPlanRequestFeatures,
- PutCorporateUserEmailPermissionsRequestPrivilegesItem,
-)
-
def test_masterAccount_create_a_new_group_of_sub_accounts() -> None:
"""Test createANewGroupOfSubAccounts endpoint with WireMock"""
test_id = "master_account.create_a_new_group_of_sub_accounts.0"
client = get_client(test_id)
- client.master_account.create_a_new_group_of_sub_accounts(
- group_name="My group",
- )
+ client.master_account.create_a_new_group_of_sub_accounts(group_name="My group")
verify_request_count(test_id, "POST", "/corporate/group", None, 1)
@@ -24,10 +13,7 @@ def test_masterAccount_delete_sub_account_from_group() -> None:
"""Test deleteSubAccountFromGroup endpoint with WireMock"""
test_id = "master_account.delete_sub_account_from_group.0"
client = get_client(test_id)
- client.master_account.delete_sub_account_from_group(
- group_id="groupId",
- sub_account_ids=[423432, 234323, 87678],
- )
+ client.master_account.delete_sub_account_from_group(group_id="groupId", sub_account_ids=[423432, 234323, 87678])
verify_request_count(test_id, "PUT", "/corporate/group/unlink/groupId/subAccounts", None, 1)
@@ -35,9 +21,7 @@ def test_masterAccount_get_a_group_details() -> None:
"""Test getAGroupDetails endpoint with WireMock"""
test_id = "master_account.get_a_group_details.0"
client = get_client(test_id)
- client.master_account.get_a_group_details(
- id="id",
- )
+ client.master_account.get_a_group_details(id="id")
verify_request_count(test_id, "GET", "/corporate/group/id", None, 1)
@@ -45,9 +29,7 @@ def test_masterAccount_update_a_group_of_sub_accounts() -> None:
"""Test updateAGroupOfSubAccounts endpoint with WireMock"""
test_id = "master_account.update_a_group_of_sub_accounts.0"
client = get_client(test_id)
- client.master_account.update_a_group_of_sub_accounts(
- id="id",
- )
+ client.master_account.update_a_group_of_sub_accounts(id="id")
verify_request_count(test_id, "PUT", "/corporate/group/id", None, 1)
@@ -55,9 +37,7 @@ def test_masterAccount_delete_a_group() -> None:
"""Test deleteAGroup endpoint with WireMock"""
test_id = "master_account.delete_a_group.0"
client = get_client(test_id)
- client.master_account.delete_a_group(
- id="id",
- )
+ client.master_account.delete_a_group(id="id")
verify_request_count(test_id, "DELETE", "/corporate/group/id", None, 1)
@@ -97,9 +77,7 @@ def test_masterAccount_generate_sso_token_to_access_admin_account() -> None:
"""Test generateSsoTokenToAccessAdminAccount endpoint with WireMock"""
test_id = "master_account.generate_sso_token_to_access_admin_account.0"
client = get_client(test_id)
- client.master_account.generate_sso_token_to_access_admin_account(
- email="vipin+ent-user@brevo.com",
- )
+ client.master_account.generate_sso_token_to_access_admin_account(email="vipin+ent-user@brevo.com")
verify_request_count(test_id, "POST", "/corporate/ssoToken", None, 1)
@@ -107,10 +85,7 @@ def test_masterAccount_get_the_list_of_all_the_sub_accounts_of_the_master_accoun
"""Test getTheListOfAllTheSubAccountsOfTheMasterAccount endpoint with WireMock"""
test_id = "master_account.get_the_list_of_all_the_sub_accounts_of_the_master_account.0"
client = get_client(test_id)
- client.master_account.get_the_list_of_all_the_sub_accounts_of_the_master_account(
- offset=1,
- limit=1,
- )
+ client.master_account.get_the_list_of_all_the_sub_accounts_of_the_master_account(offset=1, limit=1)
verify_request_count(test_id, "GET", "/corporate/subAccount", {"offset": "1", "limit": "1"}, 1)
@@ -132,10 +107,7 @@ def test_masterAccount_associate_an_ip_to_sub_accounts() -> None:
"""Test associateAnIpToSubAccounts endpoint with WireMock"""
test_id = "master_account.associate_an_ip_to_sub_accounts.0"
client = get_client(test_id)
- client.master_account.associate_an_ip_to_sub_accounts(
- ids=[234322, 325553, 893432],
- ip="103.11.32.88",
- )
+ client.master_account.associate_an_ip_to_sub_accounts(ids=[234322, 325553, 893432], ip="103.11.32.88")
verify_request_count(test_id, "POST", "/corporate/subAccount/ip/associate", None, 1)
@@ -143,10 +115,7 @@ def test_masterAccount_dissociate_an_ip_to_sub_accounts() -> None:
"""Test dissociateAnIpToSubAccounts endpoint with WireMock"""
test_id = "master_account.dissociate_an_ip_to_sub_accounts.0"
client = get_client(test_id)
- client.master_account.dissociate_an_ip_to_sub_accounts(
- ids=[234322, 325553, 893432],
- ip="103.11.32.88",
- )
+ client.master_account.dissociate_an_ip_to_sub_accounts(ids=[234322, 325553, 893432], ip="103.11.32.88")
verify_request_count(test_id, "PUT", "/corporate/subAccount/ip/dissociate", None, 1)
@@ -154,10 +123,7 @@ def test_masterAccount_create_an_api_key_for_a_sub_account() -> None:
"""Test createAnApiKeyForASubAccount endpoint with WireMock"""
test_id = "master_account.create_an_api_key_for_a_sub_account.0"
client = get_client(test_id)
- client.master_account.create_an_api_key_for_a_sub_account(
- id=3232323,
- name="My Api Key",
- )
+ client.master_account.create_an_api_key_for_a_sub_account(id=3232323, name="My Api Key")
verify_request_count(test_id, "POST", "/corporate/subAccount/key", None, 1)
@@ -165,9 +131,7 @@ def test_masterAccount_generate_sso_token_to_access_sub_account() -> None:
"""Test generateSsoTokenToAccessSubAccount endpoint with WireMock"""
test_id = "master_account.generate_sso_token_to_access_sub_account.0"
client = get_client(test_id)
- client.master_account.generate_sso_token_to_access_sub_account(
- id=3232323,
- )
+ client.master_account.generate_sso_token_to_access_sub_account(id=3232323)
verify_request_count(test_id, "POST", "/corporate/subAccount/ssoToken", None, 1)
@@ -175,9 +139,7 @@ def test_masterAccount_get_sub_account_details() -> None:
"""Test getSubAccountDetails endpoint with WireMock"""
test_id = "master_account.get_sub_account_details.0"
client = get_client(test_id)
- client.master_account.get_sub_account_details(
- id=1000000,
- )
+ client.master_account.get_sub_account_details(id=1000000)
verify_request_count(test_id, "GET", "/corporate/subAccount/1000000", None, 1)
@@ -185,9 +147,7 @@ def test_masterAccount_delete_a_sub_account() -> None:
"""Test deleteASubAccount endpoint with WireMock"""
test_id = "master_account.delete_a_sub_account.0"
client = get_client(test_id)
- client.master_account.delete_a_sub_account(
- id=1000000,
- )
+ client.master_account.delete_a_sub_account(id=1000000)
verify_request_count(test_id, "DELETE", "/corporate/subAccount/1000000", None, 1)
@@ -196,12 +156,7 @@ def test_masterAccount_enable_disable_sub_account_application_s() -> None:
test_id = "master_account.enable_disable_sub_account_application_s.0"
client = get_client(test_id)
client.master_account.enable_disable_sub_account_application_s(
- id=1000000,
- landing_pages=True,
- meetings=True,
- sms_campaigns=False,
- web_push=False,
- whatsapp=True,
+ id=1000000, landing_pages=True, meetings=True, sms_campaigns=False, web_push=False, whatsapp=True
)
verify_request_count(test_id, "PUT", "/corporate/subAccount/1000000/applications/toggle", None, 1)
@@ -212,19 +167,8 @@ def test_masterAccount_update_sub_account_plan() -> None:
client = get_client(test_id)
client.master_account.update_sub_account_plan(
id=1000000,
- credits=PutCorporateSubAccountIdPlanRequestCredits(
- email=5000,
- external_feeds=1,
- sms=2000,
- whatsapp=100,
- wp_subscribers=-1,
- ),
- features=PutCorporateSubAccountIdPlanRequestFeatures(
- inbox=10,
- landing_page=20,
- sales_users=6,
- users=15,
- ),
+ credits={"email": 5000, "external_feeds": 1, "sms": 2000, "whatsapp": 100, "wp_subscribers": -1},
+ features={"inbox": 10, "landing_page": 20, "sales_users": 6, "users": 15},
)
verify_request_count(test_id, "PUT", "/corporate/subAccount/1000000/plan", None, 1)
@@ -234,18 +178,8 @@ def test_masterAccount_update_sub_accounts_plan() -> None:
test_id = "master_account.update_sub_accounts_plan.0"
client = get_client(test_id)
client.master_account.update_sub_accounts_plan(
- credits=PutCorporateSubAccountsPlanRequestCredits(
- email=5000,
- external_feeds=1,
- sms=2000,
- whatsapp=100,
- wp_subscribers=-1,
- ),
- features=PutCorporateSubAccountsPlanRequestFeatures(
- landing_page=20,
- sales_users=6,
- users=15,
- ),
+ credits={"email": 5000, "external_feeds": 1, "sms": 2000, "whatsapp": 100, "wp_subscribers": -1},
+ features={"landing_page": 20, "sales_users": 6, "users": 15},
sub_account_ids=[4534345, 987893, 876785],
)
verify_request_count(test_id, "PUT", "/corporate/subAccounts/plan", None, 1)
@@ -255,11 +189,7 @@ def test_masterAccount_invite_admin_user() -> None:
"""Test inviteAdminUser endpoint with WireMock"""
test_id = "master_account.invite_admin_user.0"
client = get_client(test_id)
- client.master_account.invite_admin_user(
- all_features_access=True,
- email="inviteuser@example.com",
- privileges=[InviteAdminUserRequestPrivilegesItem()],
- )
+ client.master_account.invite_admin_user(all_features_access=True, email="inviteuser@example.com", privileges=[{}])
verify_request_count(test_id, "POST", "/corporate/user/invitation/send", None, 1)
@@ -267,10 +197,7 @@ def test_masterAccount_resend_cancel_admin_user_invitation() -> None:
"""Test resendCancelAdminUserInvitation endpoint with WireMock"""
test_id = "master_account.resend_cancel_admin_user_invitation.0"
client = get_client(test_id)
- client.master_account.resend_cancel_admin_user_invitation(
- action="resend",
- email="email",
- )
+ client.master_account.resend_cancel_admin_user_invitation(action="resend", email="email")
verify_request_count(test_id, "PUT", "/corporate/user/invitation/resend/email", None, 1)
@@ -278,9 +205,7 @@ def test_masterAccount_revoke_an_admin_user() -> None:
"""Test revokeAnAdminUser endpoint with WireMock"""
test_id = "master_account.revoke_an_admin_user.0"
client = get_client(test_id)
- client.master_account.revoke_an_admin_user(
- email="email",
- )
+ client.master_account.revoke_an_admin_user(email="email")
verify_request_count(test_id, "DELETE", "/corporate/user/revoke/email", None, 1)
@@ -288,9 +213,7 @@ def test_masterAccount_get_corporate_user_permission() -> None:
"""Test getCorporateUserPermission endpoint with WireMock"""
test_id = "master_account.get_corporate_user_permission.0"
client = get_client(test_id)
- client.master_account.get_corporate_user_permission(
- email="email",
- )
+ client.master_account.get_corporate_user_permission(email="email")
verify_request_count(test_id, "GET", "/corporate/user/email/permissions", None, 1)
@@ -302,42 +225,15 @@ def test_masterAccount_change_admin_user_permissions() -> None:
email="email",
all_features_access=False,
privileges=[
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="user_management",
- permissions=["all"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="api",
- permissions=["all"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="my_plan",
- permissions=["none"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="apps_management",
- permissions=["all"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="create_sub_organizations",
- permissions=["all"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="sub_organization_groups",
- permissions=["create", "edit_delete"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="manage_sub_organizations",
- permissions=["all"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="security",
- permissions=["none"],
- ),
- PutCorporateUserEmailPermissionsRequestPrivilegesItem(
- feature="analytics",
- permissions=["create_alerts", "download_data", "my_looks", "explore_create"],
- ),
+ {"feature": "user_management", "permissions": ["all"]},
+ {"feature": "api", "permissions": ["all"]},
+ {"feature": "my_plan", "permissions": ["none"]},
+ {"feature": "apps_management", "permissions": ["all"]},
+ {"feature": "create_sub_organizations", "permissions": ["all"]},
+ {"feature": "sub_organization_groups", "permissions": ["create", "edit_delete"]},
+ {"feature": "manage_sub_organizations", "permissions": ["all"]},
+ {"feature": "security", "permissions": ["none"]},
+ {"feature": "analytics", "permissions": ["create_alerts", "download_data", "my_looks", "explore_create"]},
],
)
verify_request_count(test_id, "PUT", "/corporate/user/email/permissions", None, 1)
diff --git a/tests/wire/test_notes.py b/tests/wire/test_notes.py
index 0fa43c5..75b355d 100644
--- a/tests/wire/test_notes.py
+++ b/tests/wire/test_notes.py
@@ -13,9 +13,7 @@ def test_notes_create_a_note() -> None:
"""Test createANote endpoint with WireMock"""
test_id = "notes.create_a_note.0"
client = get_client(test_id)
- client.notes.create_a_note(
- text="In communication with client_dev for resolution of queries.",
- )
+ client.notes.create_a_note(text="In communication with client_dev for resolution of queries.")
verify_request_count(test_id, "POST", "/crm/notes", None, 1)
@@ -23,9 +21,7 @@ def test_notes_get_a_note() -> None:
"""Test getANote endpoint with WireMock"""
test_id = "notes.get_a_note.0"
client = get_client(test_id)
- client.notes.get_a_note(
- id="id",
- )
+ client.notes.get_a_note(id="id")
verify_request_count(test_id, "GET", "/crm/notes/id", None, 1)
@@ -33,9 +29,7 @@ def test_notes_delete_a_note() -> None:
"""Test deleteANote endpoint with WireMock"""
test_id = "notes.delete_a_note.0"
client = get_client(test_id)
- client.notes.delete_a_note(
- id="id",
- )
+ client.notes.delete_a_note(id="id")
verify_request_count(test_id, "DELETE", "/crm/notes/id", None, 1)
@@ -43,8 +37,5 @@ def test_notes_update_a_note() -> None:
"""Test updateANote endpoint with WireMock"""
test_id = "notes.update_a_note.0"
client = get_client(test_id)
- client.notes.update_a_note(
- id="id",
- text="In communication with client_dev for resolution of queries.",
- )
+ client.notes.update_a_note(id="id", text="In communication with client_dev for resolution of queries.")
verify_request_count(test_id, "PATCH", "/crm/notes/id", None, 1)
diff --git a/tests/wire/test_payments.py b/tests/wire/test_payments.py
index 9740441..d822c36 100644
--- a/tests/wire/test_payments.py
+++ b/tests/wire/test_payments.py
@@ -1,19 +1,12 @@
from .conftest import get_client, verify_request_count
-from brevo import Cart
-
def test_payments_create_payment_request() -> None:
"""Test createPaymentRequest endpoint with WireMock"""
test_id = "payments.create_payment_request.0"
client = get_client(test_id)
client.payments.create_payment_request(
- cart=Cart(
- currency="EUR",
- specific_amount=1200,
- ),
- contact_id=43,
- reference="Invoice #INV0001",
+ cart={"currency": "EUR", "specific_amount": 1200}, contact_id=43, reference="Invoice #INV0001"
)
verify_request_count(test_id, "POST", "/payments/requests", None, 1)
@@ -22,9 +15,7 @@ def test_payments_get_payment_request() -> None:
"""Test getPaymentRequest endpoint with WireMock"""
test_id = "payments.get_payment_request.0"
client = get_client(test_id)
- client.payments.get_payment_request(
- id="050db7b0-9bb7-4c1e-9c68-5a8dace8c1dc",
- )
+ client.payments.get_payment_request(id="050db7b0-9bb7-4c1e-9c68-5a8dace8c1dc")
verify_request_count(test_id, "GET", "/payments/requests/050db7b0-9bb7-4c1e-9c68-5a8dace8c1dc", None, 1)
@@ -32,7 +23,5 @@ def test_payments_delete_payment_request() -> None:
"""Test deletePaymentRequest endpoint with WireMock"""
test_id = "payments.delete_payment_request.0"
client = get_client(test_id)
- client.payments.delete_payment_request(
- id="9ae7d68a-565c-4695-9381-d8fb3e3a14cc",
- )
+ client.payments.delete_payment_request(id="9ae7d68a-565c-4695-9381-d8fb3e3a14cc")
verify_request_count(test_id, "DELETE", "/payments/requests/9ae7d68a-565c-4695-9381-d8fb3e3a14cc", None, 1)
diff --git a/tests/wire/test_process.py b/tests/wire/test_process.py
index d19c69f..45c6524 100644
--- a/tests/wire/test_process.py
+++ b/tests/wire/test_process.py
@@ -13,7 +13,5 @@ def test_process_get_process() -> None:
"""Test getProcess endpoint with WireMock"""
test_id = "process.get_process.0"
client = get_client(test_id)
- client.process.get_process(
- process_id=1000000,
- )
+ client.process.get_process(process_id=1000000)
verify_request_count(test_id, "GET", "/processes/1000000", None, 1)
diff --git a/tests/wire/test_program.py b/tests/wire/test_program.py
index d784fce..5aa5b93 100644
--- a/tests/wire/test_program.py
+++ b/tests/wire/test_program.py
@@ -13,9 +13,7 @@ def test_program_create_new_lp() -> None:
"""Test createNewLP endpoint with WireMock"""
test_id = "program.create_new_lp.0"
client = get_client(test_id)
- client.program.create_new_lp(
- name="name",
- )
+ client.program.create_new_lp(name="name")
verify_request_count(test_id, "POST", "/loyalty/config/programs", None, 1)
@@ -23,9 +21,7 @@ def test_program_get_loyalty_program_info() -> None:
"""Test getLoyaltyProgramInfo endpoint with WireMock"""
test_id = "program.get_loyalty_program_info.0"
client = get_client(test_id)
- client.program.get_loyalty_program_info(
- pid="pid",
- )
+ client.program.get_loyalty_program_info(pid="pid")
verify_request_count(test_id, "GET", "/loyalty/config/programs/pid", None, 1)
@@ -33,10 +29,7 @@ def test_program_update_loyalty_program() -> None:
"""Test updateLoyaltyProgram endpoint with WireMock"""
test_id = "program.update_loyalty_program.0"
client = get_client(test_id)
- client.program.update_loyalty_program(
- pid="pid",
- name="name",
- )
+ client.program.update_loyalty_program(pid="pid", name="name")
verify_request_count(test_id, "PUT", "/loyalty/config/programs/pid", None, 1)
@@ -44,9 +37,7 @@ def test_program_delete_loyalty_program() -> None:
"""Test deleteLoyaltyProgram endpoint with WireMock"""
test_id = "program.delete_loyalty_program.0"
client = get_client(test_id)
- client.program.delete_loyalty_program(
- pid="pid",
- )
+ client.program.delete_loyalty_program(pid="pid")
verify_request_count(test_id, "DELETE", "/loyalty/config/programs/pid", None, 1)
@@ -54,9 +45,7 @@ def test_program_partially_update_loyalty_program() -> None:
"""Test partiallyUpdateLoyaltyProgram endpoint with WireMock"""
test_id = "program.partially_update_loyalty_program.0"
client = get_client(test_id)
- client.program.partially_update_loyalty_program(
- pid="pid",
- )
+ client.program.partially_update_loyalty_program(pid="pid")
verify_request_count(test_id, "PATCH", "/loyalty/config/programs/pid", None, 1)
@@ -64,9 +53,7 @@ def test_program_get_parameter_subscription_info() -> None:
"""Test getParameterSubscriptionInfo endpoint with WireMock"""
test_id = "program.get_parameter_subscription_info.0"
client = get_client(test_id)
- client.program.get_parameter_subscription_info(
- pid="pid",
- )
+ client.program.get_parameter_subscription_info(pid="pid")
verify_request_count(test_id, "GET", "/loyalty/config/programs/pid/account-info", None, 1)
@@ -74,10 +61,7 @@ def test_program_delete_contact_subscription() -> None:
"""Test deleteContactSubscription endpoint with WireMock"""
test_id = "program.delete_contact_subscription.0"
client = get_client(test_id)
- client.program.delete_contact_subscription(
- pid="pid",
- cid=1,
- )
+ client.program.delete_contact_subscription(pid="pid", cid=1)
verify_request_count(test_id, "DELETE", "/loyalty/config/programs/pid/contact/1", None, 1)
@@ -85,9 +69,7 @@ def test_program_publish_loyalty_program() -> None:
"""Test publishLoyaltyProgram endpoint with WireMock"""
test_id = "program.publish_loyalty_program.0"
client = get_client(test_id)
- client.program.publish_loyalty_program(
- pid="pid",
- )
+ client.program.publish_loyalty_program(pid="pid")
verify_request_count(test_id, "POST", "/loyalty/config/programs/pid/publish", None, 1)
@@ -95,10 +77,7 @@ def test_program_subscribe_member_to_a_subscription() -> None:
"""Test subscribeMemberToASubscription endpoint with WireMock"""
test_id = "program.subscribe_member_to_a_subscription.0"
client = get_client(test_id)
- client.program.subscribe_member_to_a_subscription(
- pid="pid",
- member_contact_ids=[1],
- )
+ client.program.subscribe_member_to_a_subscription(pid="pid", member_contact_ids=[1])
verify_request_count(test_id, "POST", "/loyalty/config/programs/pid/subscription-members", None, 1)
@@ -106,10 +85,7 @@ def test_program_delete_contact_members() -> None:
"""Test deleteContactMembers endpoint with WireMock"""
test_id = "program.delete_contact_members.0"
client = get_client(test_id)
- client.program.delete_contact_members(
- pid="pid",
- member_contact_ids="memberContactIds",
- )
+ client.program.delete_contact_members(pid="pid", member_contact_ids="memberContactIds")
verify_request_count(
test_id,
"DELETE",
@@ -123,8 +99,5 @@ def test_program_subscribe_to_loyalty_program() -> None:
"""Test subscribeToLoyaltyProgram endpoint with WireMock"""
test_id = "program.subscribe_to_loyalty_program.0"
client = get_client(test_id)
- client.program.subscribe_to_loyalty_program(
- pid="pid",
- contact_id=1,
- )
+ client.program.subscribe_to_loyalty_program(pid="pid", contact_id=1)
verify_request_count(test_id, "POST", "/loyalty/config/programs/pid/subscriptions", None, 1)
diff --git a/tests/wire/test_reward.py b/tests/wire/test_reward.py
index 0c00e2b..02676dd 100644
--- a/tests/wire/test_reward.py
+++ b/tests/wire/test_reward.py
@@ -5,10 +5,7 @@ def test_reward_get_code_count() -> None:
"""Test getCodeCount endpoint with WireMock"""
test_id = "reward.get_code_count.0"
client = get_client(test_id)
- client.reward.get_code_count(
- pid="pid",
- cpid="cpid",
- )
+ client.reward.get_code_count(pid="pid", cpid="cpid")
verify_request_count(test_id, "GET", "/loyalty/offer/programs/pid/code-pools/cpid/codes-count", None, 1)
@@ -16,9 +13,7 @@ def test_reward_get_reward_page_api() -> None:
"""Test getRewardPageApi endpoint with WireMock"""
test_id = "reward.get_reward_page_api.0"
client = get_client(test_id)
- client.reward.get_reward_page_api(
- pid="pid",
- )
+ client.reward.get_reward_page_api(pid="pid")
verify_request_count(test_id, "GET", "/loyalty/offer/programs/pid/offers", None, 1)
@@ -26,10 +21,7 @@ def test_reward_create_reward() -> None:
"""Test createReward endpoint with WireMock"""
test_id = "reward.create_reward.0"
client = get_client(test_id)
- client.reward.create_reward(
- pid="pid",
- name="name",
- )
+ client.reward.create_reward(pid="pid", name="name")
verify_request_count(test_id, "POST", "/loyalty/offer/programs/pid/offers", None, 1)
@@ -37,10 +29,7 @@ def test_reward_create_voucher() -> None:
"""Test createVoucher endpoint with WireMock"""
test_id = "reward.create_voucher.0"
client = get_client(test_id)
- client.reward.create_voucher(
- pid="pid",
- reward_id="rewardId",
- )
+ client.reward.create_voucher(pid="pid", reward_id="rewardId")
verify_request_count(test_id, "POST", "/loyalty/offer/programs/pid/rewards/attribute", None, 1)
@@ -48,9 +37,7 @@ def test_reward_redeem_voucher() -> None:
"""Test redeemVoucher endpoint with WireMock"""
test_id = "reward.redeem_voucher.0"
client = get_client(test_id)
- client.reward.redeem_voucher(
- pid="pid",
- )
+ client.reward.redeem_voucher(pid="pid")
verify_request_count(test_id, "POST", "/loyalty/offer/programs/pid/rewards/redeem", None, 1)
@@ -58,10 +45,7 @@ def test_reward_complete_redeem_transaction() -> None:
"""Test completeRedeemTransaction endpoint with WireMock"""
test_id = "reward.complete_redeem_transaction.0"
client = get_client(test_id)
- client.reward.complete_redeem_transaction(
- pid="pid",
- tid="tid",
- )
+ client.reward.complete_redeem_transaction(pid="pid", tid="tid")
verify_request_count(test_id, "POST", "/loyalty/offer/programs/pid/rewards/redeem/tid/complete", None, 1)
@@ -69,9 +53,7 @@ def test_reward_revoke_vouchers() -> None:
"""Test revokeVouchers endpoint with WireMock"""
test_id = "reward.revoke_vouchers.0"
client = get_client(test_id)
- client.reward.revoke_vouchers(
- pid="pid",
- )
+ client.reward.revoke_vouchers(pid="pid")
verify_request_count(test_id, "DELETE", "/loyalty/offer/programs/pid/rewards/revoke", None, 1)
@@ -79,9 +61,7 @@ def test_reward_validate_reward() -> None:
"""Test validateReward endpoint with WireMock"""
test_id = "reward.validate_reward.0"
client = get_client(test_id)
- client.reward.validate_reward(
- pid="pid",
- )
+ client.reward.validate_reward(pid="pid")
verify_request_count(test_id, "POST", "/loyalty/offer/programs/pid/rewards/validate", None, 1)
@@ -89,10 +69,7 @@ def test_reward_get_reward_information() -> None:
"""Test getRewardInformation endpoint with WireMock"""
test_id = "reward.get_reward_information.0"
client = get_client(test_id)
- client.reward.get_reward_information(
- pid="pid",
- rid="rid",
- )
+ client.reward.get_reward_information(pid="pid", rid="rid")
verify_request_count(test_id, "GET", "/loyalty/offer/programs/pid/rewards/rid", None, 1)
@@ -100,8 +77,5 @@ def test_reward_get_voucher_for_a_contact() -> None:
"""Test getVoucherForAContact endpoint with WireMock"""
test_id = "reward.get_voucher_for_a_contact.0"
client = get_client(test_id)
- client.reward.get_voucher_for_a_contact(
- pid="pid",
- contact_id=1,
- )
+ client.reward.get_voucher_for_a_contact(pid="pid", contact_id=1)
verify_request_count(test_id, "GET", "/loyalty/offer/programs/pid/vouchers", {"contactId": "1"}, 1)
diff --git a/tests/wire/test_senders.py b/tests/wire/test_senders.py
index dbb427a..c292f2d 100644
--- a/tests/wire/test_senders.py
+++ b/tests/wire/test_senders.py
@@ -13,10 +13,7 @@ def test_senders_create_sender() -> None:
"""Test createSender endpoint with WireMock"""
test_id = "senders.create_sender.0"
client = get_client(test_id)
- client.senders.create_sender(
- email="support@example.com",
- name="Support Team",
- )
+ client.senders.create_sender(email="support@example.com", name="Support Team")
verify_request_count(test_id, "POST", "/senders", None, 1)
@@ -32,10 +29,7 @@ def test_senders_update_sender() -> None:
"""Test updateSender endpoint with WireMock"""
test_id = "senders.update_sender.0"
client = get_client(test_id)
- client.senders.update_sender(
- sender_id=1000000,
- name="New Support Team",
- )
+ client.senders.update_sender(sender_id=1000000, name="New Support Team")
verify_request_count(test_id, "PUT", "/senders/1000000", None, 1)
@@ -43,9 +37,7 @@ def test_senders_delete_sender() -> None:
"""Test deleteSender endpoint with WireMock"""
test_id = "senders.delete_sender.0"
client = get_client(test_id)
- client.senders.delete_sender(
- sender_id=1000000,
- )
+ client.senders.delete_sender(sender_id=1000000)
verify_request_count(test_id, "DELETE", "/senders/1000000", None, 1)
@@ -53,9 +45,7 @@ def test_senders_get_ips_from_sender() -> None:
"""Test getIpsFromSender endpoint with WireMock"""
test_id = "senders.get_ips_from_sender.0"
client = get_client(test_id)
- client.senders.get_ips_from_sender(
- sender_id=1000000,
- )
+ client.senders.get_ips_from_sender(sender_id=1000000)
verify_request_count(test_id, "GET", "/senders/1000000/ips", None, 1)
@@ -63,8 +53,5 @@ def test_senders_validate_sender_by_otp() -> None:
"""Test validateSenderByOTP endpoint with WireMock"""
test_id = "senders.validate_sender_by_otp.0"
client = get_client(test_id)
- client.senders.validate_sender_by_otp(
- sender_id=1000000,
- otp=123456,
- )
+ client.senders.validate_sender_by_otp(sender_id=1000000, otp=123456)
verify_request_count(test_id, "PUT", "/senders/1000000/validate", None, 1)
diff --git a/tests/wire/test_smsCampaigns.py b/tests/wire/test_smsCampaigns.py
index a02fad9..1ab10c7 100644
--- a/tests/wire/test_smsCampaigns.py
+++ b/tests/wire/test_smsCampaigns.py
@@ -1,7 +1,5 @@
from .conftest import get_client, verify_request_count
-from brevo import SendReportEmail
-
def test_smsCampaigns_get_sms_campaigns() -> None:
"""Test getSmsCampaigns endpoint with WireMock"""
@@ -27,9 +25,7 @@ def test_smsCampaigns_get_sms_campaign() -> None:
"""Test getSmsCampaign endpoint with WireMock"""
test_id = "sms_campaigns.get_sms_campaign.0"
client = get_client(test_id)
- client.sms_campaigns.get_sms_campaign(
- campaign_id=1000000,
- )
+ client.sms_campaigns.get_sms_campaign(campaign_id=1000000)
verify_request_count(test_id, "GET", "/smsCampaigns/1000000", None, 1)
@@ -37,9 +33,7 @@ def test_smsCampaigns_update_sms_campaign() -> None:
"""Test updateSmsCampaign endpoint with WireMock"""
test_id = "sms_campaigns.update_sms_campaign.0"
client = get_client(test_id)
- client.sms_campaigns.update_sms_campaign(
- campaign_id=1000000,
- )
+ client.sms_campaigns.update_sms_campaign(campaign_id=1000000)
verify_request_count(test_id, "PUT", "/smsCampaigns/1000000", None, 1)
@@ -47,9 +41,7 @@ def test_smsCampaigns_delete_sms_campaign() -> None:
"""Test deleteSmsCampaign endpoint with WireMock"""
test_id = "sms_campaigns.delete_sms_campaign.0"
client = get_client(test_id)
- client.sms_campaigns.delete_sms_campaign(
- campaign_id=1000000,
- )
+ client.sms_campaigns.delete_sms_campaign(campaign_id=1000000)
verify_request_count(test_id, "DELETE", "/smsCampaigns/1000000", None, 1)
@@ -57,10 +49,7 @@ def test_smsCampaigns_request_sms_recipient_export() -> None:
"""Test requestSmsRecipientExport endpoint with WireMock"""
test_id = "sms_campaigns.request_sms_recipient_export.0"
client = get_client(test_id)
- client.sms_campaigns.request_sms_recipient_export(
- campaign_id=1000000,
- recipients_type="all",
- )
+ client.sms_campaigns.request_sms_recipient_export(campaign_id=1000000, recipients_type="all")
verify_request_count(test_id, "POST", "/smsCampaigns/1000000/exportRecipients", None, 1)
@@ -68,9 +57,7 @@ def test_smsCampaigns_send_sms_campaign_now() -> None:
"""Test sendSmsCampaignNow endpoint with WireMock"""
test_id = "sms_campaigns.send_sms_campaign_now.0"
client = get_client(test_id)
- client.sms_campaigns.send_sms_campaign_now(
- campaign_id=1000000,
- )
+ client.sms_campaigns.send_sms_campaign_now(campaign_id=1000000)
verify_request_count(test_id, "POST", "/smsCampaigns/1000000/sendNow", None, 1)
@@ -80,10 +67,7 @@ def test_smsCampaigns_send_sms_report() -> None:
client = get_client(test_id)
client.sms_campaigns.send_sms_report(
campaign_id=1000000,
- email=SendReportEmail(
- body="Please find attached the report of our last email campaign.",
- to=["jim.suehan@example.com"],
- ),
+ email={"body": "Please find attached the report of our last email campaign.", "to": ["jim.suehan@example.com"]},
)
verify_request_count(test_id, "POST", "/smsCampaigns/1000000/sendReport", None, 1)
@@ -92,9 +76,7 @@ def test_smsCampaigns_send_test_sms() -> None:
"""Test sendTestSms endpoint with WireMock"""
test_id = "sms_campaigns.send_test_sms.0"
client = get_client(test_id)
- client.sms_campaigns.send_test_sms(
- campaign_id=1000000,
- )
+ client.sms_campaigns.send_test_sms(campaign_id=1000000)
verify_request_count(test_id, "POST", "/smsCampaigns/1000000/sendTest", None, 1)
@@ -102,7 +84,5 @@ def test_smsCampaigns_update_sms_campaign_status() -> None:
"""Test updateSmsCampaignStatus endpoint with WireMock"""
test_id = "sms_campaigns.update_sms_campaign_status.0"
client = get_client(test_id)
- client.sms_campaigns.update_sms_campaign_status(
- campaign_id=1000000,
- )
+ client.sms_campaigns.update_sms_campaign_status(campaign_id=1000000)
verify_request_count(test_id, "PUT", "/smsCampaigns/1000000/status", None, 1)
diff --git a/tests/wire/test_tasks.py b/tests/wire/test_tasks.py
index c12502d..57cfd5a 100644
--- a/tests/wire/test_tasks.py
+++ b/tests/wire/test_tasks.py
@@ -1,4 +1,4 @@
-import datetime
+from datetime import datetime
from .conftest import get_client, verify_request_count
@@ -7,9 +7,7 @@ def test_tasks_get_all_tasks() -> None:
"""Test getAllTasks endpoint with WireMock"""
test_id = "tasks.get_all_tasks.0"
client = get_client(test_id)
- client.tasks.get_all_tasks(
- sort_by="name",
- )
+ client.tasks.get_all_tasks(sort_by="name")
verify_request_count(test_id, "GET", "/crm/tasks", {"sortBy": "name"}, 1)
@@ -18,7 +16,7 @@ def test_tasks_create_a_task() -> None:
test_id = "tasks.create_a_task.0"
client = get_client(test_id)
client.tasks.create_a_task(
- date=datetime.datetime.fromisoformat("2021-11-01T17:44:54+00:00"),
+ date=datetime.fromisoformat("2021-11-01T17:44:54+00:00"),
name="Task: Connect with client_dev",
task_type_id="61a5cd07ca1347c82306ad09",
)
@@ -29,9 +27,7 @@ def test_tasks_get_a_task() -> None:
"""Test getATask endpoint with WireMock"""
test_id = "tasks.get_a_task.0"
client = get_client(test_id)
- client.tasks.get_a_task(
- id="id",
- )
+ client.tasks.get_a_task(id="id")
verify_request_count(test_id, "GET", "/crm/tasks/id", None, 1)
@@ -39,9 +35,7 @@ def test_tasks_delete_a_task() -> None:
"""Test deleteATask endpoint with WireMock"""
test_id = "tasks.delete_a_task.0"
client = get_client(test_id)
- client.tasks.delete_a_task(
- id="id",
- )
+ client.tasks.delete_a_task(id="id")
verify_request_count(test_id, "DELETE", "/crm/tasks/id", None, 1)
@@ -49,9 +43,7 @@ def test_tasks_update_a_task() -> None:
"""Test updateATask endpoint with WireMock"""
test_id = "tasks.update_a_task.0"
client = get_client(test_id)
- client.tasks.update_a_task(
- id="id",
- )
+ client.tasks.update_a_task(id="id")
verify_request_count(test_id, "PATCH", "/crm/tasks/id", None, 1)
diff --git a/tests/wire/test_tier.py b/tests/wire/test_tier.py
index 67befd6..29f8760 100644
--- a/tests/wire/test_tier.py
+++ b/tests/wire/test_tier.py
@@ -1,21 +1,11 @@
from .conftest import get_client, verify_request_count
-from brevo.tier import (
- CreateTierForTierGroupRequestAccessConditionsItem,
- UpdateTierRequestAccessConditionsItem,
- UpdateTierRequestTierRewardsItem,
-)
-
def test_tier_add_subscription_to_tier() -> None:
"""Test addSubscriptionToTier endpoint with WireMock"""
test_id = "tier.add_subscription_to_tier.0"
client = get_client(test_id)
- client.tier.add_subscription_to_tier(
- pid="pid",
- cid="cid",
- tid="tid",
- )
+ client.tier.add_subscription_to_tier(pid="pid", cid="cid", tid="tid")
verify_request_count(test_id, "POST", "/loyalty/tier/programs/pid/contacts/cid/tiers/tid", None, 1)
@@ -23,9 +13,7 @@ def test_tier_get_list_of_tier_groups() -> None:
"""Test getListOfTierGroups endpoint with WireMock"""
test_id = "tier.get_list_of_tier_groups.0"
client = get_client(test_id)
- client.tier.get_list_of_tier_groups(
- pid="pid",
- )
+ client.tier.get_list_of_tier_groups(pid="pid")
verify_request_count(test_id, "GET", "/loyalty/tier/programs/pid/tier-groups", None, 1)
@@ -33,10 +21,7 @@ def test_tier_create_tier_group() -> None:
"""Test createTierGroup endpoint with WireMock"""
test_id = "tier.create_tier_group.0"
client = get_client(test_id)
- client.tier.create_tier_group(
- pid="pid",
- name="name",
- )
+ client.tier.create_tier_group(pid="pid", name="name")
verify_request_count(test_id, "POST", "/loyalty/tier/programs/pid/tier-groups", None, 1)
@@ -44,10 +29,7 @@ def test_tier_get_tier_group() -> None:
"""Test getTierGroup endpoint with WireMock"""
test_id = "tier.get_tier_group.0"
client = get_client(test_id)
- client.tier.get_tier_group(
- pid="pid",
- gid="gid",
- )
+ client.tier.get_tier_group(pid="pid", gid="gid")
verify_request_count(test_id, "GET", "/loyalty/tier/programs/pid/tier-groups/gid", None, 1)
@@ -70,10 +52,7 @@ def test_tier_delete_tier_group() -> None:
"""Test deleteTierGroup endpoint with WireMock"""
test_id = "tier.delete_tier_group.0"
client = get_client(test_id)
- client.tier.delete_tier_group(
- pid="pid",
- gid="gid",
- )
+ client.tier.delete_tier_group(pid="pid", gid="gid")
verify_request_count(test_id, "DELETE", "/loyalty/tier/programs/pid/tier-groups/gid", None, 1)
@@ -81,12 +60,7 @@ def test_tier_create_tier_for_tier_group() -> None:
"""Test createTierForTierGroup endpoint with WireMock"""
test_id = "tier.create_tier_for_tier_group.0"
client = get_client(test_id)
- client.tier.create_tier_for_tier_group(
- pid="pid",
- gid="gid",
- access_conditions=[CreateTierForTierGroupRequestAccessConditionsItem()],
- name="name",
- )
+ client.tier.create_tier_for_tier_group(pid="pid", gid="gid", access_conditions=[{}], name="name")
verify_request_count(test_id, "POST", "/loyalty/tier/programs/pid/tier-groups/gid/tiers", None, 1)
@@ -94,9 +68,7 @@ def test_tier_get_loyalty_program_tier() -> None:
"""Test getLoyaltyProgramTier endpoint with WireMock"""
test_id = "tier.get_loyalty_program_tier.0"
client = get_client(test_id)
- client.tier.get_loyalty_program_tier(
- pid="pid",
- )
+ client.tier.get_loyalty_program_tier(pid="pid")
verify_request_count(test_id, "GET", "/loyalty/tier/programs/pid/tiers", None, 1)
@@ -104,13 +76,7 @@ def test_tier_update_tier() -> None:
"""Test updateTier endpoint with WireMock"""
test_id = "tier.update_tier.0"
client = get_client(test_id)
- client.tier.update_tier(
- pid="pid",
- tid="tid",
- access_conditions=[UpdateTierRequestAccessConditionsItem()],
- name="name",
- tier_rewards=[UpdateTierRequestTierRewardsItem()],
- )
+ client.tier.update_tier(pid="pid", tid="tid", access_conditions=[{}], name="name", tier_rewards=[{}])
verify_request_count(test_id, "PUT", "/loyalty/tier/programs/pid/tiers/tid", None, 1)
@@ -118,8 +84,5 @@ def test_tier_delete_tier() -> None:
"""Test deleteTier endpoint with WireMock"""
test_id = "tier.delete_tier.0"
client = get_client(test_id)
- client.tier.delete_tier(
- pid="pid",
- tid="tid",
- )
+ client.tier.delete_tier(pid="pid", tid="tid")
verify_request_count(test_id, "DELETE", "/loyalty/tier/programs/pid/tiers/tid", None, 1)
diff --git a/tests/wire/test_transactionalEmails.py b/tests/wire/test_transactionalEmails.py
index 3291ac1..7b809c5 100644
--- a/tests/wire/test_transactionalEmails.py
+++ b/tests/wire/test_transactionalEmails.py
@@ -1,13 +1,7 @@
-import datetime
+from datetime import date
from .conftest import get_client, verify_request_count
-from brevo.transactional_emails import (
- CreateSmtpTemplateRequestSender,
- SendTransacEmailRequestSender,
- SendTransacEmailRequestToItem,
-)
-
def test_transactionalEmails_get_transac_blocked_contacts() -> None:
"""Test getTransacBlockedContacts endpoint with WireMock"""
@@ -21,9 +15,7 @@ def test_transactionalEmails_unblock_or_resubscribe_a_transactional_contact() ->
"""Test unblockOrResubscribeATransactionalContact endpoint with WireMock"""
test_id = "transactional_emails.unblock_or_resubscribe_a_transactional_contact.0"
client = get_client(test_id)
- client.transactional_emails.unblock_or_resubscribe_a_transactional_contact(
- email="email",
- )
+ client.transactional_emails.unblock_or_resubscribe_a_transactional_contact(email="email")
verify_request_count(test_id, "DELETE", "/smtp/blockedContacts/email", None, 1)
@@ -39,9 +31,7 @@ def test_transactionalEmails_block_new_domain() -> None:
"""Test blockNewDomain endpoint with WireMock"""
test_id = "transactional_emails.block_new_domain.0"
client = get_client(test_id)
- client.transactional_emails.block_new_domain(
- domain="example.com",
- )
+ client.transactional_emails.block_new_domain(domain="example.com")
verify_request_count(test_id, "POST", "/smtp/blockedDomains", None, 1)
@@ -49,9 +39,7 @@ def test_transactionalEmails_delete_blocked_domain() -> None:
"""Test deleteBlockedDomain endpoint with WireMock"""
test_id = "transactional_emails.delete_blocked_domain.0"
client = get_client(test_id)
- client.transactional_emails.delete_blocked_domain(
- domain="domain",
- )
+ client.transactional_emails.delete_blocked_domain(domain="domain")
verify_request_count(test_id, "DELETE", "/smtp/blockedDomains/domain", None, 1)
@@ -69,17 +57,9 @@ def test_transactionalEmails_send_transac_email() -> None:
client = get_client(test_id)
client.transactional_emails.send_transac_email(
html_content="Hello,
This is my first transactional email sent from Brevo.",
- sender=SendTransacEmailRequestSender(
- email="hello@brevo.com",
- name="Alex from Brevo",
- ),
+ sender={"email": "hello@brevo.com", "name": "Alex from Brevo"},
subject="Hello from Brevo!",
- to=[
- SendTransacEmailRequestToItem(
- email="johndoe@example.com",
- name="John Doe",
- )
- ],
+ to=[{"email": "johndoe@example.com", "name": "John Doe"}],
)
verify_request_count(test_id, "POST", "/smtp/email", None, 1)
@@ -88,9 +68,7 @@ def test_transactionalEmails_delete_scheduled_email_by_id() -> None:
"""Test deleteScheduledEmailById endpoint with WireMock"""
test_id = "transactional_emails.delete_scheduled_email_by_id.0"
client = get_client(test_id)
- client.transactional_emails.delete_scheduled_email_by_id(
- identifier="4320f270-a4e3-4a2e-b591-edfe30a5e627",
- )
+ client.transactional_emails.delete_scheduled_email_by_id(identifier="4320f270-a4e3-4a2e-b591-edfe30a5e627")
verify_request_count(test_id, "DELETE", "/smtp/email/4320f270-a4e3-4a2e-b591-edfe30a5e627", None, 1)
@@ -100,8 +78,8 @@ def test_transactionalEmails_get_scheduled_email_by_id() -> None:
client = get_client(test_id)
client.transactional_emails.get_scheduled_email_by_id(
identifier="4320f270-a4e3-4a2e-b591-edfe30a5e627",
- start_date=datetime.date.fromisoformat("2022-02-02"),
- end_date=datetime.date.fromisoformat("2022-03-02"),
+ start_date=date.fromisoformat("2022-02-02"),
+ end_date=date.fromisoformat("2022-03-02"),
)
verify_request_count(
test_id,
@@ -124,9 +102,7 @@ def test_transactionalEmails_get_transac_email_content() -> None:
"""Test getTransacEmailContent endpoint with WireMock"""
test_id = "transactional_emails.get_transac_email_content.0"
client = get_client(test_id)
- client.transactional_emails.get_transac_email_content(
- uuid_="uuid",
- )
+ client.transactional_emails.get_transac_email_content(uuid_="uuid")
verify_request_count(test_id, "GET", "/smtp/emails/uuid", None, 1)
@@ -134,9 +110,7 @@ def test_transactionalEmails_delete_an_smtp_transactional_log() -> None:
"""Test deleteAnSmtpTransactionalLog endpoint with WireMock"""
test_id = "transactional_emails.delete_an_smtp_transactional_log.0"
client = get_client(test_id)
- client.transactional_emails.delete_an_smtp_transactional_log(
- identifier="identifier",
- )
+ client.transactional_emails.delete_an_smtp_transactional_log(identifier="identifier")
verify_request_count(test_id, "DELETE", "/smtp/log/identifier", None, 1)
@@ -169,7 +143,9 @@ def test_transactionalEmails_post_preview_smtp_email_templates() -> None:
test_id = "transactional_emails.post_preview_smtp_email_templates.0"
client = get_client(test_id)
client.transactional_emails.post_preview_smtp_email_templates(
- request={"key": "value"},
+ request={
+ "key": "value",
+ }
)
verify_request_count(test_id, "POST", "/smtp/template/preview", None, 1)
@@ -187,9 +163,7 @@ def test_transactionalEmails_create_smtp_template() -> None:
test_id = "transactional_emails.create_smtp_template.0"
client = get_client(test_id)
client.transactional_emails.create_smtp_template(
- sender=CreateSmtpTemplateRequestSender(),
- subject="Thanks for your purchase !",
- template_name="Order Confirmation - EN",
+ sender={}, subject="Thanks for your purchase !", template_name="Order Confirmation - EN"
)
verify_request_count(test_id, "POST", "/smtp/templates", None, 1)
@@ -198,9 +172,7 @@ def test_transactionalEmails_get_smtp_template() -> None:
"""Test getSmtpTemplate endpoint with WireMock"""
test_id = "transactional_emails.get_smtp_template.0"
client = get_client(test_id)
- client.transactional_emails.get_smtp_template(
- template_id=1000000,
- )
+ client.transactional_emails.get_smtp_template(template_id=1000000)
verify_request_count(test_id, "GET", "/smtp/templates/1000000", None, 1)
@@ -208,9 +180,7 @@ def test_transactionalEmails_update_smtp_template() -> None:
"""Test updateSmtpTemplate endpoint with WireMock"""
test_id = "transactional_emails.update_smtp_template.0"
client = get_client(test_id)
- client.transactional_emails.update_smtp_template(
- template_id=1000000,
- )
+ client.transactional_emails.update_smtp_template(template_id=1000000)
verify_request_count(test_id, "PUT", "/smtp/templates/1000000", None, 1)
@@ -218,9 +188,7 @@ def test_transactionalEmails_delete_smtp_template() -> None:
"""Test deleteSmtpTemplate endpoint with WireMock"""
test_id = "transactional_emails.delete_smtp_template.0"
client = get_client(test_id)
- client.transactional_emails.delete_smtp_template(
- template_id=1000000,
- )
+ client.transactional_emails.delete_smtp_template(template_id=1000000)
verify_request_count(test_id, "DELETE", "/smtp/templates/1000000", None, 1)
@@ -228,7 +196,5 @@ def test_transactionalEmails_send_test_template() -> None:
"""Test sendTestTemplate endpoint with WireMock"""
test_id = "transactional_emails.send_test_template.0"
client = get_client(test_id)
- client.transactional_emails.send_test_template(
- template_id=1000000,
- )
+ client.transactional_emails.send_test_template(template_id=1000000)
verify_request_count(test_id, "POST", "/smtp/templates/1000000/sendTest", None, 1)
diff --git a/tests/wire/test_transactionalSms.py b/tests/wire/test_transactionalSms.py
index 18a7e60..a3e6d5d 100644
--- a/tests/wire/test_transactionalSms.py
+++ b/tests/wire/test_transactionalSms.py
@@ -5,10 +5,7 @@ def test_transactionalSms_send_async_transactional_sms() -> None:
"""Test sendAsyncTransactionalSms endpoint with WireMock"""
test_id = "transactional_sms.send_async_transactional_sms.0"
client = get_client(test_id)
- client.transactional_sms.send_async_transactional_sms(
- recipient="33689965433",
- sender="MyShop",
- )
+ client.transactional_sms.send_async_transactional_sms(recipient="33689965433", sender="MyShop")
verify_request_count(test_id, "POST", "/transactionalSMS/send", None, 1)
@@ -16,10 +13,7 @@ def test_transactionalSms_send_transac_sms() -> None:
"""Test sendTransacSms endpoint with WireMock"""
test_id = "transactional_sms.send_transac_sms.0"
client = get_client(test_id)
- client.transactional_sms.send_transac_sms(
- recipient="33689965433",
- sender="MyShop",
- )
+ client.transactional_sms.send_transac_sms(recipient="33689965433", sender="MyShop")
verify_request_count(test_id, "POST", "/transactionalSMS/sms", None, 1)
diff --git a/tests/wire/test_transactionalWhatsApp.py b/tests/wire/test_transactionalWhatsApp.py
index ca7e9f9..eaf0d24 100644
--- a/tests/wire/test_transactionalWhatsApp.py
+++ b/tests/wire/test_transactionalWhatsApp.py
@@ -1,18 +1,12 @@
from .conftest import get_client, verify_request_count
-from brevo.transactional_whats_app import SendWhatsappMessageRequestParams
-
def test_transactionalWhatsApp_send_whatsapp_message() -> None:
"""Test sendWhatsappMessage endpoint with WireMock"""
test_id = "transactional_whats_app.send_whatsapp_message.0"
client = get_client(test_id)
client.transactional_whats_app.send_whatsapp_message(
- request=SendWhatsappMessageRequestParams(
- contact_numbers=["contactNumbers"],
- sender_number="senderNumber",
- template_id=123,
- ),
+ request={"contact_numbers": ["contactNumbers"], "sender_number": "senderNumber", "template_id": 123}
)
verify_request_count(test_id, "POST", "/whatsapp/sendMessage", None, 1)
diff --git a/tests/wire/test_user.py b/tests/wire/test_user.py
index f61fccf..1eebd6e 100644
--- a/tests/wire/test_user.py
+++ b/tests/wire/test_user.py
@@ -1,7 +1,5 @@
from .conftest import get_client, verify_request_count
-from brevo import InviteuserPrivilegesItem
-
def test_user_get_invited_users_list() -> None:
"""Test getInvitedUsersList endpoint with WireMock"""
@@ -15,9 +13,7 @@ def test_user_put_revoke_user_permission() -> None:
"""Test putRevokeUserPermission endpoint with WireMock"""
test_id = "user.put_revoke_user_permission.0"
client = get_client(test_id)
- client.user.put_revoke_user_permission(
- email="email",
- )
+ client.user.put_revoke_user_permission(email="email")
verify_request_count(test_id, "PUT", "/organization/user/invitation/revoke/email", None, 1)
@@ -25,11 +21,7 @@ def test_user_inviteuser() -> None:
"""Test inviteuser endpoint with WireMock"""
test_id = "user.inviteuser.0"
client = get_client(test_id)
- client.user.inviteuser(
- all_features_access=True,
- email="inviteuser@example.com",
- privileges=[InviteuserPrivilegesItem()],
- )
+ client.user.inviteuser(all_features_access=True, email="inviteuser@example.com", privileges=[{}])
verify_request_count(test_id, "POST", "/organization/user/invitation/send", None, 1)
@@ -37,10 +29,7 @@ def test_user_putresendcancelinvitation() -> None:
"""Test putresendcancelinvitation endpoint with WireMock"""
test_id = "user.putresendcancelinvitation.0"
client = get_client(test_id)
- client.user.putresendcancelinvitation(
- action="resend",
- email="email",
- )
+ client.user.putresendcancelinvitation(action="resend", email="email")
verify_request_count(test_id, "PUT", "/organization/user/invitation/resend/email", None, 1)
@@ -48,11 +37,7 @@ def test_user_edit_user_permission() -> None:
"""Test EditUserPermission endpoint with WireMock"""
test_id = "user.edit_user_permission.0"
client = get_client(test_id)
- client.user.edit_user_permission(
- all_features_access=True,
- email="inviteuser@example.com",
- privileges=[InviteuserPrivilegesItem()],
- )
+ client.user.edit_user_permission(all_features_access=True, email="inviteuser@example.com", privileges=[{}])
verify_request_count(test_id, "POST", "/organization/user/update/permissions", None, 1)
@@ -60,7 +45,5 @@ def test_user_get_user_permission() -> None:
"""Test getUserPermission endpoint with WireMock"""
test_id = "user.get_user_permission.0"
client = get_client(test_id)
- client.user.get_user_permission(
- email="email",
- )
+ client.user.get_user_permission(email="email")
verify_request_count(test_id, "GET", "/organization/user/email/permissions", None, 1)
diff --git a/tests/wire/test_webhooks.py b/tests/wire/test_webhooks.py
index e875d03..ee74393 100644
--- a/tests/wire/test_webhooks.py
+++ b/tests/wire/test_webhooks.py
@@ -13,10 +13,7 @@ def test_webhooks_create_webhook() -> None:
"""Test createWebhook endpoint with WireMock"""
test_id = "webhooks.create_webhook.0"
client = get_client(test_id)
- client.webhooks.create_webhook(
- events=["sent"],
- url="http://requestb.in/173lyyx1",
- )
+ client.webhooks.create_webhook(events=["sent"], url="http://requestb.in/173lyyx1")
verify_request_count(test_id, "POST", "/webhooks", None, 1)
@@ -25,9 +22,7 @@ def test_webhooks_export_webhooks_history() -> None:
test_id = "webhooks.export_webhooks_history.0"
client = get_client(test_id)
client.webhooks.export_webhooks_history(
- event="invalid_parameter",
- notify_url="https://brevo.com",
- type="transactional",
+ event="invalid_parameter", notify_url="https://brevo.com", type="transactional"
)
verify_request_count(test_id, "POST", "/webhooks/export", None, 1)
@@ -36,9 +31,7 @@ def test_webhooks_get_webhook() -> None:
"""Test getWebhook endpoint with WireMock"""
test_id = "webhooks.get_webhook.0"
client = get_client(test_id)
- client.webhooks.get_webhook(
- webhook_id=1000000,
- )
+ client.webhooks.get_webhook(webhook_id=1000000)
verify_request_count(test_id, "GET", "/webhooks/1000000", None, 1)
@@ -46,9 +39,7 @@ def test_webhooks_update_webhook() -> None:
"""Test updateWebhook endpoint with WireMock"""
test_id = "webhooks.update_webhook.0"
client = get_client(test_id)
- client.webhooks.update_webhook(
- webhook_id=1000000,
- )
+ client.webhooks.update_webhook(webhook_id=1000000)
verify_request_count(test_id, "PUT", "/webhooks/1000000", None, 1)
@@ -56,7 +47,5 @@ def test_webhooks_delete_webhook() -> None:
"""Test deleteWebhook endpoint with WireMock"""
test_id = "webhooks.delete_webhook.0"
client = get_client(test_id)
- client.webhooks.delete_webhook(
- webhook_id=1000000,
- )
+ client.webhooks.delete_webhook(webhook_id=1000000)
verify_request_count(test_id, "DELETE", "/webhooks/1000000", None, 1)
diff --git a/tests/wire/test_whatsAppCampaigns.py b/tests/wire/test_whatsAppCampaigns.py
index e1e935f..d9e68c1 100644
--- a/tests/wire/test_whatsAppCampaigns.py
+++ b/tests/wire/test_whatsAppCampaigns.py
@@ -1,7 +1,5 @@
from .conftest import get_client, verify_request_count
-from brevo.whats_app_campaigns import CreateWhatsAppCampaignRequestRecipients
-
def test_whatsAppCampaigns_get_whats_app_campaigns() -> None:
"""Test getWhatsAppCampaigns endpoint with WireMock"""
@@ -16,10 +14,7 @@ def test_whatsAppCampaigns_create_whats_app_campaign() -> None:
test_id = "whats_app_campaigns.create_whats_app_campaign.0"
client = get_client(test_id)
client.whats_app_campaigns.create_whats_app_campaign(
- name="Test Campaign",
- recipients=CreateWhatsAppCampaignRequestRecipients(),
- scheduled_at="2017-06-01T12:30:00+02:00",
- template_id=19,
+ name="Test Campaign", recipients={}, scheduled_at="2017-06-01T12:30:00+02:00", template_id=19
)
verify_request_count(test_id, "POST", "/whatsappCampaigns", None, 1)
@@ -37,10 +32,7 @@ def test_whatsAppCampaigns_create_whats_app_template() -> None:
test_id = "whats_app_campaigns.create_whats_app_template.0"
client = get_client(test_id)
client.whats_app_campaigns.create_whats_app_template(
- body_text="making it look like readable English",
- category="MARKETING",
- language="en",
- name="Test template",
+ body_text="making it look like readable English", category="MARKETING", language="en", name="Test template"
)
verify_request_count(test_id, "POST", "/whatsappCampaigns/template", None, 1)
@@ -57,9 +49,7 @@ def test_whatsAppCampaigns_send_whats_app_template_approval() -> None:
"""Test sendWhatsAppTemplateApproval endpoint with WireMock"""
test_id = "whats_app_campaigns.send_whats_app_template_approval.0"
client = get_client(test_id)
- client.whats_app_campaigns.send_whats_app_template_approval(
- template_id=1000000,
- )
+ client.whats_app_campaigns.send_whats_app_template_approval(template_id=1000000)
verify_request_count(test_id, "POST", "/whatsappCampaigns/template/approval/1000000", None, 1)
@@ -67,9 +57,7 @@ def test_whatsAppCampaigns_get_whats_app_campaign() -> None:
"""Test getWhatsAppCampaign endpoint with WireMock"""
test_id = "whats_app_campaigns.get_whats_app_campaign.0"
client = get_client(test_id)
- client.whats_app_campaigns.get_whats_app_campaign(
- campaign_id=1000000,
- )
+ client.whats_app_campaigns.get_whats_app_campaign(campaign_id=1000000)
verify_request_count(test_id, "GET", "/whatsappCampaigns/1000000", None, 1)
@@ -77,9 +65,7 @@ def test_whatsAppCampaigns_update_whats_app_campaign() -> None:
"""Test updateWhatsAppCampaign endpoint with WireMock"""
test_id = "whats_app_campaigns.update_whats_app_campaign.0"
client = get_client(test_id)
- client.whats_app_campaigns.update_whats_app_campaign(
- campaign_id=1000000,
- )
+ client.whats_app_campaigns.update_whats_app_campaign(campaign_id=1000000)
verify_request_count(test_id, "PUT", "/whatsappCampaigns/1000000", None, 1)
@@ -87,7 +73,5 @@ def test_whatsAppCampaigns_delete_whats_app_campaign() -> None:
"""Test deleteWhatsAppCampaign endpoint with WireMock"""
test_id = "whats_app_campaigns.delete_whats_app_campaign.0"
client = get_client(test_id)
- client.whats_app_campaigns.delete_whats_app_campaign(
- campaign_id=1000000,
- )
+ client.whats_app_campaigns.delete_whats_app_campaign(campaign_id=1000000)
verify_request_count(test_id, "DELETE", "/whatsappCampaigns/1000000", None, 1)
diff --git a/wiremock/wiremock-mappings.json b/wiremock/wiremock-mappings.json
index 58b768c..fd65032 100644
--- a/wiremock/wiremock-mappings.json
+++ b/wiremock/wiremock-mappings.json
@@ -1 +1 @@
-{"mappings":[{"id":"1211c905-93ae-4aa1-a220-5b0994166727","name":"Get account details - default","request":{"urlPathTemplate":"/account","method":"GET"},"response":{"status":200,"body":"{\n \"organization_id\": \"5fa2b8c123456789abcdef01\",\n \"user_id\": 1234567,\n \"enterprise\": false,\n \"companyName\": \"Acme Marketing Corp\",\n \"email\": \"michael.davis@example.com\",\n \"firstName\": \"Michael\",\n \"lastName\": \"Davis\",\n \"address\": {\n \"city\": \"New York\",\n \"country\": \"United States\",\n \"street\": \"456 Business Ave\",\n \"zipCode\": \"10001\"\n },\n \"dateTimePreferences\": {\n \"timezone\": \"America/New_York\",\n \"timeFormat\": \"12\",\n \"dateFormat\": \"mm-dd-yyyy\"\n },\n \"marketingAutomation\": {\n \"enabled\": true,\n \"key\": \"ma8k2x9v4h7p3d6f1c5e8b2a\"\n },\n \"plan\": [\n {\n \"credits\": 250,\n \"creditsType\": \"sendLimit\",\n \"endDate\": \"1753826567\",\n \"startDate\": \"1751234567\",\n \"type\": \"free\"\n },\n {\n \"credits\": 15,\n \"creditsType\": \"sendLimit\",\n \"endDate\": \"1753826567\",\n \"startDate\": \"1751234567\",\n \"type\": \"sms\"\n }\n ],\n \"planVerticals\": [\n {\n \"planCategory\": \"Marketing\",\n \"planType\": \"free\",\n \"name\": \"Free\",\n \"status\": \"active\",\n \"startDate\": \"1751234567\",\n \"endDate\": \"1753826567\",\n \"users\": {\n \"purchasedSeats\": \"1\",\n \"usedSeats\": \"1\"\n },\n \"credits\": \"250\"\n },\n {\n \"planCategory\": \"Chat\",\n \"planType\": \"free\",\n \"name\": \"Free\",\n \"status\": \"active\",\n \"startDate\": \"1735678901\",\n \"endDate\": \"1767214901\",\n \"users\": {\n \"purchasedSeats\": \"1\",\n \"usedSeats\": \"1\"\n },\n \"credits\": \"250\"\n },\n {\n \"planCategory\": \"CRM\",\n \"planType\": \"free\",\n \"name\": \"Free\",\n \"status\": \"active\",\n \"startDate\": \"1735678900\",\n \"endDate\": \"1767214900\",\n \"users\": {\n \"purchasedSeats\": \"1\",\n \"usedSeats\": \"1\"\n },\n \"credits\": \"250\"\n }\n ],\n \"relay\": {\n \"data\": {\n \"port\": 587,\n \"relay\": \"smtp-relay.brevo.com\",\n \"userName\": \"michael.davis@example.com\"\n },\n \"enabled\": true\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"1211c905-93ae-4aa1-a220-5b0994166727","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8875a0d0-f755-470c-bb61-f8ad06810a28","name":"getAccountActivity - default","request":{"urlPathTemplate":"/organization/activities","method":"GET"},"response":{"status":200,"body":"{\n \"logs\": [\n {\n \"action\": \"login-success\",\n \"date\": \"2023-03-16T16:49:23+05:30\",\n \"user_agent\": \"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)\",\n \"user_email\": \"test@mycompany.com\",\n \"user_ip\": \"192.158.1.34\"\n },\n {\n \"action\": \"update-profile\",\n \"date\": \"2023-03-15T16:49:23+05:30\",\n \"user_agent\": \"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)\",\n \"user_email\": \"test@myexample.com\",\n \"user_ip\": \"192.158.1.38\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"8875a0d0-f755-470c-bb61-f8ad06810a28","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"22e8ec1f-e4ba-4f4b-996b-17fb7412b82b","name":"Create a new group of sub-accounts - default","request":{"urlPathTemplate":"/corporate/group","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"659xxxxxxxxxxxxxxxx6ef9c8\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"22e8ec1f-e4ba-4f4b-996b-17fb7412b82b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"553c0be2-9f70-4b5f-867b-1d2543c96f46","name":"Delete sub-account from group - default","request":{"urlPathTemplate":"/corporate/group/unlink/{groupId}/subAccounts","method":"PUT","pathParameters":{"groupId":{"equalTo":"groupId"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"553c0be2-9f70-4b5f-867b-1d2543c96f46","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"569cac67-bd04-4628-af18-b29f58c3426a","name":"GET a group details - default","request":{"urlPathTemplate":"/corporate/group/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"group\": {\n \"createdAt\": \"2024-02-09T06:14:40+00:00\",\n \"groupName\": \"My group\",\n \"id\": \"5f926dba72a405440a4efc97\"\n },\n \"sub-accounts\": [\n {\n \"companyName\": \"My sub organization\",\n \"createdAt\": \"2024-02-09T06:14:40+00:00\",\n \"id\": 7866556\n },\n {\n \"companyName\": \"Your sub organization\",\n \"createdAt\": \"2024-01-05T03:11:40+00:00\",\n \"id\": 6563051\n }\n ],\n \"users\": [\n {\n \"email\": \"my-user@my-org.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Smith\"\n },\n {\n \"email\": \"your-user@your-org.com\",\n \"firstName\": \"firstName\",\n \"lastName\": \"lastName\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"569cac67-bd04-4628-af18-b29f58c3426a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"15046c07-f5ad-4826-99a4-368a6abcc9d5","name":"Update a group of sub-accounts - default","request":{"urlPathTemplate":"/corporate/group/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"15046c07-f5ad-4826-99a4-368a6abcc9d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"204960c9-0571-4a3d-a030-f9779c6aea08","name":"Delete a group - default","request":{"urlPathTemplate":"/corporate/group/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"204960c9-0571-4a3d-a030-f9779c6aea08","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d15212a9-7d53-42ef-996e-cbae118ba999","name":"Get the list of groups - default","request":{"urlPathTemplate":"/corporate/groups","method":"GET"},"response":{"status":200,"body":"[\n {\n \"groupName\": \"My group 1\",\n \"id\": \"d3b142c709d6ed67ef1cd903\"\n },\n {\n \"groupName\": \"My group 2\",\n \"id\": \"a5b192a709d6ed67ef8fd922\"\n },\n {\n \"groupName\": \"My group 3\",\n \"id\": \"bbb142c709d6ed67ef1cd910\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"d15212a9-7d53-42ef-996e-cbae118ba999","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"431c56cb-581f-459e-a434-b2378dfbb177","name":"Get the list of all admin users - default","request":{"urlPathTemplate":"/corporate/invited/users","method":"GET"},"response":{"status":200,"body":"{\n \"users\": [\n {\n \"email\": \"master-user2@company.com\",\n \"feature_access\": {\n \"analytics\": [\n \"download_data\",\n \"create_alerts\",\n \"my_looks\",\n \"explore_create\"\n ],\n \"api_keys\": [\n \"all\"\n ],\n \"apps_management\": [\n \"none\"\n ],\n \"create_sub_organizations\": [\n \"all\"\n ],\n \"manage_sub_organizations\": [\n \"all\"\n ],\n \"my_plan\": [\n \"all\",\n \"all\"\n ],\n \"sub_organization_groups\": [\n \"create\",\n \"edit_delete\"\n ],\n \"user_management\": [\n \"none\"\n ]\n },\n \"groups\": {\n \"id\": \"a5c4f22c08d9ed37ef1ca342\",\n \"name\": \"My group\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n },\n {\n \"email\": \"master-user3@company.com\",\n \"feature_access\": {\n \"analytics\": [\n \"create_alerts\",\n \"my_looks\"\n ],\n \"api_keys\": [\n \"none\"\n ],\n \"apps_management\": [\n \"all\"\n ],\n \"create_sub_organizations\": [\n \"all\"\n ],\n \"manage_sub_organizations\": [\n \"all\"\n ],\n \"my_plan\": [\n \"none\",\n \"none\"\n ],\n \"sub_organization_groups\": [\n \"edit_delete\"\n ],\n \"user_management\": [\n \"all\"\n ]\n },\n \"groups\": {\n \"id\": \"a5c4f22c08d9ed37ef1ca342\",\n \"name\": \"My group\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"431c56cb-581f-459e-a434-b2378dfbb177","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"47be7c71-5117-47ca-8146-e166b37fbd89","name":"List of all IPs - default","request":{"urlPathTemplate":"/corporate/ip","method":"GET"},"response":{"status":200,"body":"[\n {\n \"domain\": \"example.com\",\n \"ip\": \"192.168.1.1\",\n \"transactional\": true\n },\n {\n \"domain\": \"example.com\",\n \"ip\": \"192.168.1.2\",\n \"transactional\": false\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"47be7c71-5117-47ca-8146-e166b37fbd89","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c8f6e272-2e8b-4912-b109-ef644f37c748","name":"Get the details of requested master account - default","request":{"urlPathTemplate":"/corporate/masterAccount","method":"GET"},"response":{"status":200,"body":"{\n \"billingInfo\": {\n \"address\": {\n \"countryCode\": \"IN\",\n \"locality\": \"Pandav Nagar, New Delhi\",\n \"postalCode\": \"560048\",\n \"stateCode\": \"UP\",\n \"streetAddress\": \"C-92\"\n },\n \"companyName\": \"Corp Sample 1-1\",\n \"email\": \"sample@example.com\",\n \"name\": {\n \"familyName\": \"Pandit\",\n \"givenName\": \"Uday\"\n }\n },\n \"companyName\": \"Corp Sample 1-1\",\n \"currencyCode\": \"INR\",\n \"email\": \"sample@example.com\",\n \"id\": 1003286,\n \"planInfo\": {\n \"currencyCode\": \"INR\",\n \"features\": [\n {\n \"name\": \"MULTI_USER\",\n \"quantity\": 10,\n \"remaining\": 0,\n \"unitValue\": \"unitValue\",\n \"used\": 15\n },\n {\n \"name\": \"ADVANCED_REPORTING\",\n \"quantity\": 12,\n \"remaining\": 11,\n \"unitValue\": \"unitValue\",\n \"used\": 1\n },\n {\n \"name\": \"INBOX\",\n \"quantity\": 10,\n \"remaining\": 0,\n \"unitValue\": \"unitValue\",\n \"used\": 10\n },\n {\n \"name\": \"LANDING_PAGE\",\n \"quantity\": 10,\n \"remaining\": 0,\n \"unitValue\": \"unitValue\",\n \"used\": 11\n },\n {\n \"name\": \"RECURRING_CREDITS\",\n \"quantity\": 500,\n \"remaining\": 499,\n \"unitValue\": \"unitValue\",\n \"used\": 1\n }\n ],\n \"nextBillingAt\": 1637739295,\n \"planPeriod\": \"month\",\n \"price\": 2100,\n \"subAccounts\": 15\n },\n \"timezone\": \"Europe/Paris\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c8f6e272-2e8b-4912-b109-ef644f37c748","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8fea4e4d-838b-4875-b315-9790bd457518","name":"Generate SSO token to access admin account - default","request":{"urlPathTemplate":"/corporate/ssoToken","method":"POST"},"response":{"status":200,"body":"{\n \"token\": \"5cadaxxxxxxxxxxxxxxxxxxxx5a179f85a0\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8fea4e4d-838b-4875-b315-9790bd457518","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"45b2935e-aecb-4ad4-8888-9a0e585bcd23","name":"Get the list of all the sub-accounts of the master account. - default","request":{"urlPathTemplate":"/corporate/subAccount","method":"GET","queryParameters":{"offset":{"equalTo":"1"},"limit":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"count\": 3,\n \"subAccounts\": [\n {\n \"active\": true,\n \"companyName\": \"Company1\",\n \"createdAt\": 1631523176,\n \"groups\": [\n {\n \"id\": \"5f8f8c3b5f56a02d4433b3a8\",\n \"name\": \"Group 1\"\n },\n {\n \"id\": \"4fbf3c3b1f56a02ac465b1a0\",\n \"name\": \"Group 2\"\n }\n ],\n \"id\": 4043629\n },\n {\n \"active\": true,\n \"companyName\": \"Company2\",\n \"createdAt\": 1629439311,\n \"groups\": [\n {}\n ],\n \"id\": 3984002\n },\n {\n \"active\": true,\n \"companyName\": \"Company3\",\n \"createdAt\": 1614713641,\n \"groups\": [\n {}\n ],\n \"id\": 3524191\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"45b2935e-aecb-4ad4-8888-9a0e585bcd23","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"27e8ff22-470d-462b-a9e2-6cd1c428b361","name":"Create a new sub-account under a master account. - default","request":{"urlPathTemplate":"/corporate/subAccount","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 4109344\n}","headers":{"Content-Type":"application/json"}},"uuid":"27e8ff22-470d-462b-a9e2-6cd1c428b361","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0b1c8ee5-ea29-4bb0-a233-53d0ff4d86fa","name":"Associate an IP to sub-accounts - default","request":{"urlPathTemplate":"/corporate/subAccount/ip/associate","method":"POST"},"response":{"status":201,"body":"{\n \"key\": \"value\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"0b1c8ee5-ea29-4bb0-a233-53d0ff4d86fa","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b9524079-a627-4ed4-8f2a-abb0390700aa","name":"Dissociate an IP to sub-accounts - default","request":{"urlPathTemplate":"/corporate/subAccount/ip/dissociate","method":"PUT"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b9524079-a627-4ed4-8f2a-abb0390700aa","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"69800c09-607d-406d-8817-7c7c51ff5ae1","name":"Create an API key for a sub-account - default","request":{"urlPathTemplate":"/corporate/subAccount/key","method":"POST"},"response":{"status":201,"body":"{\n \"key\": \"xkeysib-21881axxxxxcc92e04-mIrexxxx7z\",\n \"status\": \"success\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"69800c09-607d-406d-8817-7c7c51ff5ae1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c6174a85-f3d7-4550-bc89-0e9814e58cfb","name":"Generate SSO token to access sub-account - default","request":{"urlPathTemplate":"/corporate/subAccount/ssoToken","method":"POST"},"response":{"status":200,"body":"{\n \"token\": \"5cadaxxxxxxxxxxxxxxxxxxxx5a179f85a0\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c6174a85-f3d7-4550-bc89-0e9814e58cfb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a2fc395f-9a4c-407e-bcf3-5eb067c54991","name":"Get sub-account details - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}","method":"GET","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"companyName\": \"API-Sub-26thOct21-4\",\n \"email\": \"uday+1@brevo.com\",\n \"groups\": [\n {\n \"id\": \"5f8f8c3b5f56a02d4433b3a7\",\n \"name\": \"Group 1\"\n },\n {\n \"id\": \"5f8f8c3b5f56a02d4433b3a8\",\n \"name\": \"Group 2\"\n }\n ],\n \"name\": \"Uday Pandit\",\n \"planInfo\": {\n \"credits\": {\n \"emails\": {\n \"quantity\": 2000,\n \"remaining\": 1955\n },\n \"externalFeeds\": {\n \"quantity\": 1,\n \"remaining\": 1\n },\n \"sms\": {\n \"quantity\": 2000,\n \"remaining\": 1955\n },\n \"whatsapp\": {\n \"quantity\": 100,\n \"remaining\": 50\n },\n \"wpSubscribers\": {\n \"quantity\": 2000,\n \"remaining\": 1955\n }\n },\n \"features\": {\n \"inbox\": {\n \"quantity\": 20,\n \"remaining\": 12\n },\n \"landingPage\": {\n \"quantity\": 25,\n \"remaining\": 14\n },\n \"salesUsers\": {\n \"quantity\": 30,\n \"remaining\": 14\n },\n \"users\": {\n \"quantity\": 30,\n \"remaining\": 14\n }\n },\n \"planType\": \"paid\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"a2fc395f-9a4c-407e-bcf3-5eb067c54991","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"574c16a0-400c-46fe-aea7-88b6b1a0b812","name":"Delete a sub-account - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"574c16a0-400c-46fe-aea7-88b6b1a0b812","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"769c18cf-d0ef-4284-83e9-bc297f635f71","name":"Enable/disable sub-account application(s) - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}/applications/toggle","method":"PUT","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"769c18cf-d0ef-4284-83e9-bc297f635f71","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"85c53397-13d2-43ec-986d-7d85858e7c8e","name":"Update sub-account plan - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}/plan","method":"PUT","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"85c53397-13d2-43ec-986d-7d85858e7c8e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"41b0f555-e1b6-4e40-9e6a-17c8bd025f53","name":"Update sub-accounts plan - default","request":{"urlPathTemplate":"/corporate/subAccounts/plan","method":"PUT"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"41b0f555-e1b6-4e40-9e6a-17c8bd025f53","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2d522f1e-c89e-42da-b070-ffb9ff715ec2","name":"Send invitation to an admin user - default","request":{"urlPathTemplate":"/corporate/user/invitation/send","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"659xxxxxxxxxxxxxxxx6ef9c8\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2d522f1e-c89e-42da-b070-ffb9ff715ec2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d9c935a4-0eec-4d97-9162-0ecfcc38abbb","name":"Resend / cancel admin user invitation - default","request":{"urlPathTemplate":"/corporate/user/invitation/{action}/{email}","method":"PUT","pathParameters":{"action":{"equalTo":"resend"},"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"message\": \"Invitation resent successfully\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"d9c935a4-0eec-4d97-9162-0ecfcc38abbb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a6f000f1-1ae0-4b47-842f-edac9954cb1d","name":"Revoke an admin user - default","request":{"urlPathTemplate":"/corporate/user/revoke/{email}","method":"DELETE","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a6f000f1-1ae0-4b47-842f-edac9954cb1d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f295c79b-1b65-4112-8b0c-b6ce9d87d44f","name":"Check admin user permissions - default","request":{"urlPathTemplate":"/corporate/user/{email}/permissions","method":"GET","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"email\": \"invitedUser@company.com\",\n \"feature_access\": {\n \"analytics\": [\n \"download_data\",\n \"create_alerts\",\n \"my_looks\",\n \"explore_create\"\n ],\n \"api_keys\": [\n \"all\"\n ],\n \"apps_management\": [\n \"all\"\n ],\n \"create_sub_organizations\": [\n \"all\"\n ],\n \"manage_sub_organizations\": [\n \"all\"\n ],\n \"my_plan\": [\n \"all\",\n \"all\"\n ],\n \"sub_organization_groups\": [\n \"create\",\n \"edit_delete\"\n ],\n \"user_management\": [\n \"none\"\n ]\n },\n \"groups\": [\n {\n \"id\": \"6543ab3667ffbb00142e4486\",\n \"name\": \"Support\"\n },\n {\n \"id\": \"174bab366732bbce142e4412\",\n \"name\": \"Technical\"\n }\n ],\n \"status\": \"active\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f295c79b-1b65-4112-8b0c-b6ce9d87d44f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c29d9b3d-5506-4699-8d63-cb5be4b098e1","name":"Change admin user permissions - default","request":{"urlPathTemplate":"/corporate/user/{email}/permissions","method":"PUT","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c29d9b3d-5506-4699-8d63-cb5be4b098e1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5b756ab9-0c76-4ea0-86e3-2629a91ee517","name":"Get the list of all your users - default","request":{"urlPathTemplate":"/organization/invited/users","method":"GET"},"response":{"status":200,"body":"{\n \"users\": [\n {\n \"email\": \"owner@company.com\",\n \"feature_access\": {\n \"conversations\": \"owner\",\n \"crm\": \"owner\",\n \"marketing\": \"owner\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n },\n {\n \"email\": \"pendingInvitedUser@company.com\",\n \"feature_access\": {\n \"conversations\": \"none\",\n \"crm\": \"full\",\n \"marketing\": \"custom\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"pending\"\n },\n {\n \"email\": \"connectedInvitedUser@company.com\",\n \"feature_access\": {\n \"conversations\": \"full\",\n \"crm\": \"none\",\n \"marketing\": \"none\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"5b756ab9-0c76-4ea0-86e3-2629a91ee517","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"027416a7-5144-402b-8e13-ff098d91ec53","name":"Revoke user permission - default","request":{"urlPathTemplate":"/organization/user/invitation/revoke/{email}","method":"PUT","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"credit_notes\": [\n \"TEST-123\"\n ],\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"027416a7-5144-402b-8e13-ff098d91ec53","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3380168e-886f-4ab1-9489-1f453e144d97","name":"Send invitation to user - default","request":{"urlPathTemplate":"/organization/user/invitation/send","method":"POST"},"response":{"status":200,"body":"{\n \"invoice_id\": \"invoice_id\",\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"3380168e-886f-4ab1-9489-1f453e144d97","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fda4aa42-d57d-4f82-8b2b-30f5d0abffa2","name":"Resend / Cancel invitation - default","request":{"urlPathTemplate":"/organization/user/invitation/{action}/{email}","method":"PUT","pathParameters":{"action":{"equalTo":"resend"},"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"credit_notes\": [\n \"TEST-123\"\n ],\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"fda4aa42-d57d-4f82-8b2b-30f5d0abffa2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e3763191-26a9-488e-9abf-c8b9ca82c709","name":"Update permission for a user - default","request":{"urlPathTemplate":"/organization/user/update/permissions","method":"POST"},"response":{"status":200,"body":"{\n \"credit_notes\": [\n \"TEST-123\"\n ],\n \"invoice_id\": \"invoice_id\",\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e3763191-26a9-488e-9abf-c8b9ca82c709","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8d0fdcb2-801b-46ec-98ff-ef29fa70f35d","name":"Check user permission - default","request":{"urlPathTemplate":"/organization/user/{email}/permissions","method":"GET","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"email\": \"invitedUser@company.com\",\n \"privileges\": [\n {\n \"feature\": \"Email campaign\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Send / schedule / suspend\"\n ]\n },\n {\n \"feature\": \"Templates\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Activate / deactivate\"\n ]\n },\n {\n \"feature\": \"SMS campaign\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Send / schedule / suspend\"\n ]\n },\n {\n \"feature\": \"Facebook Ads\",\n \"permissions\": [\n \"Schedule / pause\"\n ]\n },\n {\n \"feature\": \"Landing pages\",\n \"permissions\": [\n \"All\"\n ]\n },\n {\n \"feature\": \"Workflows\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Activate / deactivate / Pause\"\n ]\n },\n {\n \"feature\": \"Contacts\",\n \"permissions\": [\n \"View\",\n \"Contact forms\"\n ]\n },\n {\n \"feature\": \"SMTP & API\",\n \"permissions\": [\n \"SMTP\",\n \"API Keys\",\n \"Authorized IPs\"\n ]\n },\n {\n \"feature\": \"User management\",\n \"permissions\": [\n \"None\"\n ]\n },\n {\n \"feature\": \"Sales Platform\",\n \"permissions\": [\n \"Create / edit / delete owned deals and tasks\",\n \"Manage deals and tasks from other users\",\n \"Reports\",\n \"Settings\"\n ]\n },\n {\n \"feature\": \"Conversations\",\n \"permissions\": [\n \"None\"\n ]\n },\n {\n \"feature\": \"Senders, Domains & Dedicated IPs\",\n \"permissions\": [\n \"Senders management\",\n \"Domains management\",\n \"Dedicated IPs management\"\n ]\n },\n {\n \"feature\": \"Push\",\n \"permissions\": [\n \"View\",\n \"Create / edit / delete\",\n \"Send\",\n \"Settings\"\n ]\n },\n {\n \"feature\": \"Companies\",\n \"permissions\": [\n \"Create / edit / delete owned companies\",\n \"Manage companies from other users\",\n \"Settings\"\n ]\n }\n ],\n \"status\": \"active\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8d0fdcb2-801b-46ec-98ff-ef29fa70f35d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ec86c15f-d950-46af-8cc4-d9670d01ec3e","name":"Get background processes - default","request":{"urlPathTemplate":"/processes","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 198,\n \"processes\": [\n {\n \"id\": 217,\n \"name\": \"IMPORTUSER\",\n \"status\": \"completed\",\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:35:00Z\"\n },\n {\n \"id\": 213,\n \"name\": \"SEARCH_EXPORT_USERS\",\n \"status\": \"completed\",\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:35:00Z\"\n },\n {\n \"id\": 212,\n \"name\": \"IMPORTUSER\",\n \"status\": \"queued\",\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:35:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ec86c15f-d950-46af-8cc4-d9670d01ec3e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5cd8a4a8-5754-4b87-aa94-fc464c24ad7a","name":"Get process details - default","request":{"urlPathTemplate":"/processes/{processId}","method":"GET","pathParameters":{"processId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"id\": 217,\n \"name\": \"IMPORTUSER\",\n \"status\": \"queued\",\n \"info\": {\n \"import\": {\n \"invalid_emails\": 2,\n \"duplicate_contact_id\": 0,\n \"duplicate_ext_id\": 1,\n \"duplicate_email_id\": 5,\n \"duplicate_phone_id\": 1,\n \"duplicate_whatsapp_id\": 1,\n \"duplicate_landline_number_id\": 1\n },\n \"export\": {\n \"total_records\": 1250,\n \"file_size\": 102400\n }\n },\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded after 30 minutes\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:32:15Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"5cd8a4a8-5754-4b87-aa94-fc464c24ad7a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6ee5e306-247b-485b-9f81-14d36b3a0bda","name":"Get email senders - default","request":{"urlPathTemplate":"/senders","method":"GET"},"response":{"status":200,"body":"{\n \"senders\": [\n {\n \"active\": true,\n \"email\": \"support@example.com\",\n \"id\": 1,\n \"ips\": [\n {\n \"domain\": \"example.com\",\n \"ip\": \"203.0.113.100\",\n \"weight\": 50\n }\n ],\n \"name\": \"Support Team\"\n },\n {\n \"active\": false,\n \"email\": \"hello@example.com\",\n \"id\": 3,\n \"ips\": [\n {\n \"domain\": \"example.com\",\n \"ip\": \"203.0.113.100\",\n \"weight\": 50\n }\n ],\n \"name\": \"Customer Service\"\n },\n {\n \"active\": false,\n \"email\": \"marketing@testcompany.com\",\n \"id\": 5,\n \"ips\": [\n {\n \"domain\": \"example.com\",\n \"ip\": \"203.0.113.100\",\n \"weight\": 50\n }\n ],\n \"name\": \"Marketing Team\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"6ee5e306-247b-485b-9f81-14d36b3a0bda","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"04b1327d-3b58-45aa-a665-8f8430486eca","name":"Create email sender - default","request":{"urlPathTemplate":"/senders","method":"POST"},"response":{"status":201,"body":"{\n \"dkimError\": false,\n \"id\": 15,\n \"spfError\": false\n}","headers":{"Content-Type":"application/json"}},"uuid":"04b1327d-3b58-45aa-a665-8f8430486eca","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"17fe3a57-60da-42b1-a435-e4cf134d171e","name":"getIps - default","request":{"urlPathTemplate":"/senders/ips","method":"GET"},"response":{"status":200,"body":"{\n \"ips\": [\n {\n \"active\": true,\n \"domain\": \"mailing.enterprise.com\",\n \"id\": 3,\n \"ip\": \"192.168.1.100\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"17fe3a57-60da-42b1-a435-e4cf134d171e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a0fc45b1-4252-4d1d-a02e-f542df6bf33e","name":"updateSender - default","request":{"urlPathTemplate":"/senders/{senderId}","method":"PUT","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a0fc45b1-4252-4d1d-a02e-f542df6bf33e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f691a271-1b98-49eb-b4a0-124162e8a7d5","name":"deleteSender - default","request":{"urlPathTemplate":"/senders/{senderId}","method":"DELETE","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f691a271-1b98-49eb-b4a0-124162e8a7d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a90c739a-2ce1-4058-a434-60d316495970","name":"getIpsFromSender - default","request":{"urlPathTemplate":"/senders/{senderId}/ips","method":"GET","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"ips\": [\n {\n \"domain\": \"mailing.enterprise.com\",\n \"id\": 3,\n \"ip\": \"192.168.1.100\",\n \"weight\": 75\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a90c739a-2ce1-4058-a434-60d316495970","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"868b537b-a700-40e2-bc48-c51dfd0ef8ed","name":"validateSenderByOTP - default","request":{"urlPathTemplate":"/senders/{senderId}/validate","method":"PUT","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"868b537b-a700-40e2-bc48-c51dfd0ef8ed","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6efe0f37-1aad-44ee-a626-e10a2df32e40","name":"getDomains - default","request":{"urlPathTemplate":"/senders/domains","method":"GET"},"response":{"status":200,"body":"{\n \"domains\": [\n {\n \"id\": \"67e57b40130375f045064c45\",\n \"domain_name\": \"mycompany.com\",\n \"authenticated\": true,\n \"verified\": true,\n \"ip\": \"192.168.1.100\",\n \"provider\": \"Cloudflare\",\n \"creator\": {\n \"id\": \"62e4fce597550d0b0177cb0c\",\n \"email\": \"admin@mycompany.com\",\n \"creationDate\": \"2025-03-27T16:22:24Z\"\n }\n },\n {\n \"id\": \"67f778570dd65f97c70910ed\",\n \"domain_name\": \"newsletter.mycompany.com\",\n \"authenticated\": false,\n \"verified\": true,\n \"provider\": \"GoDaddy\",\n \"creator\": {\n \"id\": \"62e4fce597550d0b0177cb0c\",\n \"email\": \"admin@mycompany.com\",\n \"creationDate\": \"2025-04-10T07:50:47Z\"\n }\n },\n {\n \"id\": \"688cd306d8893504e50ea615\",\n \"domain_name\": \"test.example.com\",\n \"authenticated\": false,\n \"verified\": false,\n \"provider\": \"Other\",\n \"creator\": {\n \"id\": \"62e4fce597550d0b0177cb0c\",\n \"email\": \"admin@mycompany.com\",\n \"creationDate\": \"2025-08-01T14:45:26Z\"\n }\n }\n ],\n \"count\": 3,\n \"current_page\": 1,\n \"total_pages\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"6efe0f37-1aad-44ee-a626-e10a2df32e40","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"d932d31f-c588-47e7-8703-1fc734a1dffd","name":"createDomain - default","request":{"urlPathTemplate":"/senders/domains","method":"POST"},"response":{"status":200,"body":"{\n \"id\": 5,\n \"domain_name\": \"mycompany.com\",\n \"domain_provider\": \"Cloudflare\",\n \"message\": \"Domain added successfully. To authenticate it, add following DNS records\",\n \"dns_records\": {\n \"brevo_code\": {\n \"host_name\": \"@\",\n \"type\": \"TXT\",\n \"value\": \"brevo-code=abc123def456\",\n \"status\": false\n },\n \"dkim_record\": {\n \"host_name\": \"mail._domainkey\",\n \"type\": \"TXT\",\n \"value\": \"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN...\",\n \"status\": false\n },\n \"dmarc_record\": {\n \"host_name\": \"_dmarc\",\n \"type\": \"TXT\",\n \"value\": \"v=DMARC1; p=none; rua=mailto:dmarc@mycompany.com\",\n \"status\": false\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"d932d31f-c588-47e7-8703-1fc734a1dffd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"184d536e-335a-4ef0-8445-30b9081f5725","name":"getDomainConfiguration - default","request":{"urlPathTemplate":"/senders/domains/{domainName}","method":"GET","pathParameters":{"domainName":{"equalTo":"domainName"}}},"response":{"status":200,"body":"{\n \"domain\": \"mycompany.com\",\n \"verified\": true,\n \"authenticated\": true,\n \"dns_records\": {\n \"brevo_code\": {\n \"host_name\": \"@\",\n \"type\": \"TXT\",\n \"value\": \"brevo-code=abc123def456\",\n \"status\": true\n },\n \"dkim_record\": {\n \"host_name\": \"mail._domainkey\",\n \"type\": \"TXT\",\n \"value\": \"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN...\",\n \"status\": true\n },\n \"dmarc_record\": {\n \"host_name\": \"_dmarc\",\n \"type\": \"TXT\",\n \"value\": \"v=DMARC1; p=quarantine; rua=mailto:dmarc@mycompany.com\",\n \"status\": true\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"184d536e-335a-4ef0-8445-30b9081f5725","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"85cfda0d-d298-48b3-8a8f-fcdc75ac72c2","name":"deleteDomain - default","request":{"urlPathTemplate":"/senders/domains/{domainName}","method":"DELETE","pathParameters":{"domainName":{"equalTo":"domainName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"85cfda0d-d298-48b3-8a8f-fcdc75ac72c2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9028b6d6-1ed0-4272-bf1a-30fca4d35a1b","name":"authenticateDomain - default","request":{"urlPathTemplate":"/senders/domains/{domainName}/authenticate","method":"PUT","pathParameters":{"domainName":{"equalTo":"domainName"}}},"response":{"status":200,"body":"{\n \"domain_name\": \"mycompany.com\",\n \"message\": \"Domain has been authenticated successfully.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"9028b6d6-1ed0-4272-bf1a-30fca4d35a1b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"71fd7de8-a010-43ca-bce7-8d0788df718a","name":"getWebhooks - default","request":{"urlPathTemplate":"/webhooks","method":"GET"},"response":{"status":200,"body":"{\n \"webhooks\": [\n {\n \"auth\": {\n \"token\": \"test-auth-token1234\",\n \"type\": \"bearer\"\n },\n \"batched\": true,\n \"channel\": \"email\",\n \"createdAt\": \"2016-07-18T12:30:09Z\",\n \"description\": \"Webhook triggered on campaign openings\",\n \"events\": [\n \"opened\"\n ],\n \"headers\": [\n {\n \"key\": \"cf-secret\",\n \"value\": \"test-header-value\"\n }\n ],\n \"id\": 9864,\n \"modifiedAt\": \"2016-07-18T16:00:50Z\",\n \"type\": \"transactional\",\n \"url\": \"https://example.domain.com/webhook/events/kzfxxxxxxxx0uyo1\"\n },\n {\n \"auth\": {\n \"token\": \"test-auth-token1234\",\n \"type\": \"bearer\"\n },\n \"batched\": true,\n \"channel\": \"sms\",\n \"createdAt\": \"2017-02-20T14:30:00Z\",\n \"description\": \"Webhook triggered on campaign hard bounces\",\n \"events\": [\n \"hardBounces\"\n ],\n \"headers\": [\n {\n \"key\": \"cf-secret\",\n \"value\": \"test-header-value\"\n }\n ],\n \"id\": 22770,\n \"modifiedAt\": \"2017-02-20T19:00:00Z\",\n \"type\": \"marketing\",\n \"url\": \"http://exmaple.domain.com/15kxxxxxn1\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"71fd7de8-a010-43ca-bce7-8d0788df718a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"657ec845-de7a-4389-887a-888df91d2433","name":"createWebhook - default","request":{"urlPathTemplate":"/webhooks","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"657ec845-de7a-4389-887a-888df91d2433","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2ca5ef46-7340-4f7f-bb5f-a3f34383c9c8","name":"Export webhook history - default","request":{"urlPathTemplate":"/webhooks/export","method":"POST"},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"2ca5ef46-7340-4f7f-bb5f-a3f34383c9c8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"adc43c28-964b-4170-aee2-5bb24add0d04","name":"getWebhook - default","request":{"urlPathTemplate":"/webhooks/{webhookId}","method":"GET","pathParameters":{"webhookId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"auth\": {\n \"token\": \"test-auth-token1234\",\n \"type\": \"bearer\"\n },\n \"batched\": true,\n \"channel\": \"sms\",\n \"createdAt\": \"2016-06-07T09:10:10Z\",\n \"description\": \"Webhook triggered on campaign openings and addition of lists\",\n \"events\": [\n \"listAdditions\",\n \"opened\"\n ],\n \"headers\": [\n {\n \"key\": \"cf-secret\",\n \"value\": \"test-header-value\"\n }\n ],\n \"id\": 7287,\n \"modifiedAt\": \"2016-06-08T11:30:00Z\",\n \"type\": \"marketing\",\n \"url\": \"http://example.domain.com/1brxxxxxx5p1\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"adc43c28-964b-4170-aee2-5bb24add0d04","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ffcb1664-4c31-4340-a525-2b616cf4334c","name":"updateWebhook - default","request":{"urlPathTemplate":"/webhooks/{webhookId}","method":"PUT","pathParameters":{"webhookId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ffcb1664-4c31-4340-a525-2b616cf4334c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"be23bfc5-4a58-4cb4-8191-aee4cb8f244f","name":"deleteWebhook - default","request":{"urlPathTemplate":"/webhooks/{webhookId}","method":"DELETE","pathParameters":{"webhookId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"be23bfc5-4a58-4cb4-8191-aee4cb8f244f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2a8a03cd-cea2-4501-94e0-c2dccdd68f00","name":"Get all external feeds - default","request":{"urlPathTemplate":"/feeds","method":"GET","queryParameters":{"search":{"equalTo":"product"},"startDate":{"equalTo":"2024-01-01"},"endDate":{"equalTo":"2024-01-31"}}},"response":{"status":200,"body":"{\n \"count\": 18,\n \"feeds\": [\n {\n \"id\": \"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6\",\n \"name\": \"Product Catalog Feed\",\n \"alias\": \"product_catalog_feed\",\n \"url\": \"https://api.example.com/products\",\n \"authType\": \"noAuth\",\n \"username\": \"apiuser\",\n \"password\": \"apipass\",\n \"token\": \"abc123token456\",\n \"maxRetries\": 3,\n \"cache\": true,\n \"isInternal\": false,\n \"headers\": [\n {\n \"name\": \"Authorization\",\n \"value\": \"Bearer xyz789\"\n }\n ],\n \"createdAt\": \"2025-09-18T13:29:27Z\",\n \"modifiedAt\": \"2025-09-18T13:29:27Z\"\n },\n {\n \"id\": \"c2d3e4f5-a6b7-48c9-90d1-e2f3a4b5c6d7\",\n \"name\": \"Blog News Feed\",\n \"alias\": \"blog_news_feed\",\n \"url\": \"https://blog.example.com/api/posts\",\n \"authType\": \"noAuth\",\n \"username\": \"apiuser\",\n \"password\": \"apipass\",\n \"token\": \"abc123token456\",\n \"maxRetries\": 3,\n \"cache\": true,\n \"isInternal\": true,\n \"headers\": [\n {\n \"name\": \"Authorization\",\n \"value\": \"Bearer xyz789\"\n }\n ],\n \"createdAt\": \"2025-09-17T16:03:25Z\",\n \"modifiedAt\": \"2025-09-17T16:03:25Z\"\n },\n {\n \"id\": \"d3e4f5a6-b7c8-49d0-91e2-f3a4b5c6d7e8\",\n \"name\": \"Public Data Feed\",\n \"alias\": \"public_data_feed\",\n \"url\": \"https://jsonplaceholder.typicode.com/posts\",\n \"authType\": \"noAuth\",\n \"username\": \"apiuser\",\n \"password\": \"apipass\",\n \"token\": \"abc123token456\",\n \"maxRetries\": 3,\n \"cache\": true,\n \"isInternal\": true,\n \"headers\": [\n {\n \"name\": \"Authorization\",\n \"value\": \"Bearer xyz789\"\n }\n ],\n \"createdAt\": \"2025-09-05T09:06:42Z\",\n \"modifiedAt\": \"2025-09-05T09:06:42Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"2a8a03cd-cea2-4501-94e0-c2dccdd68f00","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"6feaee25-9e8b-4798-b9ee-ae7b3aad1442","name":"Create external feed - default","request":{"urlPathTemplate":"/feeds","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"6feaee25-9e8b-4798-b9ee-ae7b3aad1442","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2239ff35-3a80-42f1-b822-81e1d785db03","name":"Get external feed details - default","request":{"urlPathTemplate":"/feeds/{uuid}","method":"GET","pathParameters":{"uuid":{"equalTo":"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6"}}},"response":{"status":200,"body":"{\n \"id\": \"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6\",\n \"name\": \"Product Catalog Feed\",\n \"url\": \"https://api.example.com/products\",\n \"authType\": \"noAuth\",\n \"personalization\": false,\n \"defaultAttr\": \"\",\n \"defaultContact\": \"\",\n \"maxRetries\": 0,\n \"cache\": false,\n \"createdAt\": \"2025-09-18T13:29:27Z\",\n \"modifiedAt\": \"2025-09-18T13:29:27Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2239ff35-3a80-42f1-b822-81e1d785db03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c1cb8e28-7845-4479-a233-737a81218df9","name":"Update external feed - default","request":{"urlPathTemplate":"/feeds/{uuid}","method":"PUT","pathParameters":{"uuid":{"equalTo":"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c1cb8e28-7845-4479-a233-737a81218df9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"63a2125b-2244-41b0-8f75-6e2eb3cfb682","name":"Delete external feed - default","request":{"urlPathTemplate":"/feeds/{uuid}","method":"DELETE","pathParameters":{"uuid":{"equalTo":"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"63a2125b-2244-41b0-8f75-6e2eb3cfb682","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"03da01c2-0cff-47d2-996c-4317cabb22c4","name":"Create/Update object records in bulk - default","request":{"urlPathTemplate":"/objects/{object_type}/batch/upsert","method":"POST","pathParameters":{"object_type":{"equalTo":"vehicle"}}},"response":{"status":202,"body":"{\n \"message\": \"Batch object records are being processed\",\n \"processId\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"03da01c2-0cff-47d2-996c-4317cabb22c4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"90e40ddc-ba7b-4979-8f3d-67bcfe9be80d","name":"Get the list of object records and total records count for an object. - default","request":{"urlPathTemplate":"/objects/{object_type}/records","method":"GET","pathParameters":{"object_type":{"equalTo":"vehicle"}},"queryParameters":{"limit":{"equalTo":"1000000"},"page_num":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"count\": 350,\n \"records\": [\n {\n \"associations\": [\n {\n \"object_type\": \"garage\",\n \"records\": [\n {\n \"identifiers\": {\n \"id\": 12345\n }\n }\n ]\n }\n ],\n \"attributes\": {\n \"color\": \"Black\",\n \"engine_type\": \"Hybrid\",\n \"make\": \"Toyoto\",\n \"model\": \"Corolla\",\n \"year\": 2020\n },\n \"createdAt\": \"2025-07-22T10:20:30Z\",\n \"identifiers\": {\n \"ext_id\": \"507f1f77bc\",\n \"id\": 16789\n },\n \"updatedAt\": \"2025-07-22T10:20:30Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"90e40ddc-ba7b-4979-8f3d-67bcfe9be80d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dc28fc32-e60d-4ec0-a256-912ae9ca2cbd","name":"Delete multiple object records (up to 1000) asynchronously - default","request":{"urlPathTemplate":"/objects/{object_type}/batch/delete","method":"POST","pathParameters":{"object_type":{"equalTo":"vehicle"}}},"response":{"status":202,"body":"{\n \"processId\": 21,\n \"message\": \"Batch object records are being processed for deletion.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"dc28fc32-e60d-4ec0-a256-912ae9ca2cbd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8729f948-4808-4d8f-b027-70b35a734218","name":"Get all the contacts - default","request":{"urlPathTemplate":"/contacts","method":"GET"},"response":{"status":200,"body":"{\n \"contacts\": [\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"email\": \"contact1@example.com\",\n \"emailBlacklisted\": true,\n \"id\": 247,\n \"listIds\": [\n 43,\n 58\n ],\n \"listUnsubscribed\": [\n 1000000\n ],\n \"modifiedAt\": \"2017-05-01T17:05:03Z\",\n \"smsBlacklisted\": true\n },\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"email\": \"33058407248@mailin-sms.com\",\n \"emailBlacklisted\": true,\n \"id\": 245,\n \"listIds\": [\n 43,\n 61,\n 58\n ],\n \"listUnsubscribed\": [\n 1000000\n ],\n \"modifiedAt\": \"2017-05-01T17:05:03Z\",\n \"smsBlacklisted\": false\n }\n ],\n \"count\": 3\n}","headers":{"Content-Type":"application/json"}},"uuid":"8729f948-4808-4d8f-b027-70b35a734218","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"fe3c55db-75e2-4d78-85c0-eaed9f642c83","name":"Create a contact - default","request":{"urlPathTemplate":"/contacts","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"fe3c55db-75e2-4d78-85c0-eaed9f642c83","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dd0aa44d-f601-4c28-8481-1c0b25bb46aa","name":"List all attributes - default","request":{"urlPathTemplate":"/contacts/attributes","method":"GET"},"response":{"status":200,"body":"{\n \"attributes\": [\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"LASTNAME\",\n \"type\": \"text\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"FIRSTNAME\",\n \"type\": \"text\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"DOB\",\n \"type\": \"date\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"category\",\n \"enumeration\": [\n {\n \"label\": \"Men\",\n \"value\": 1\n },\n {\n \"label\": \"Women\",\n \"value\": 2\n },\n {\n \"label\": \"Kid\",\n \"value\": 3\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"GENDER\",\n \"type\": \"text\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"BDO\",\n \"type\": \"user\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\",\n \"India\",\n \"France\"\n ],\n \"name\": \"COUNTRY\",\n \"type\": \"multiple-choice\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"dd0aa44d-f601-4c28-8481-1c0b25bb46aa","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1253fdcb-3d6c-4957-88ab-df297d7154ab","name":"Create contact attribute - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeCategory}/{attributeName}","method":"POST","pathParameters":{"attributeCategory":{"equalTo":"normal"},"attributeName":{"equalTo":"attributeName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1253fdcb-3d6c-4957-88ab-df297d7154ab","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f02e59a5-f5b5-400d-8697-22eace5165c5","name":"Update contact attribute - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeCategory}/{attributeName}","method":"PUT","pathParameters":{"attributeCategory":{"equalTo":"category"},"attributeName":{"equalTo":"attributeName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f02e59a5-f5b5-400d-8697-22eace5165c5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eed9112c-42ea-4dba-a3c1-5bc5eea04b6a","name":"Delete an attribute - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeCategory}/{attributeName}","method":"DELETE","pathParameters":{"attributeCategory":{"equalTo":"normal"},"attributeName":{"equalTo":"attributeName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"eed9112c-42ea-4dba-a3c1-5bc5eea04b6a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"827de4b0-dfdc-45c9-a27a-819a6acaece3","name":"Delete a multiple-choice attribute option - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeType}/{multipleChoiceAttribute}/{multipleChoiceAttributeOption}","method":"DELETE","pathParameters":{"attributeType":{"equalTo":"multiple-choice"},"multipleChoiceAttribute":{"equalTo":"multipleChoiceAttribute"},"multipleChoiceAttributeOption":{"equalTo":"multipleChoiceAttributeOption"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"827de4b0-dfdc-45c9-a27a-819a6acaece3","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6ba8cd16-ea25-49a7-8288-e0cf22a8b065","name":"Update multiple contacts - default","request":{"urlPathTemplate":"/contacts/batch","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"6ba8cd16-ea25-49a7-8288-e0cf22a8b065","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2b7fdfe7-8f83-41bd-81d2-b42f70ff4603","name":"Create Contact via DOI (Double-Opt-In) Flow - default","request":{"urlPathTemplate":"/contacts/doubleOptinConfirmation","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"2b7fdfe7-8f83-41bd-81d2-b42f70ff4603","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1a2d075b-a8de-4135-b0c9-58bcfe31c7e4","name":"Export contacts - default","request":{"urlPathTemplate":"/contacts/export","method":"POST"},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"1a2d075b-a8de-4135-b0c9-58bcfe31c7e4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c175e62d-23d7-4d5a-bc46-7093ac21de08","name":"Get all folders - default","request":{"urlPathTemplate":"/contacts/folders","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"folders\": [\n {\n \"id\": 42,\n \"name\": \"Ninja_Form\",\n \"totalBlacklisted\": 98,\n \"totalSubscribers\": 4567,\n \"uniqueSubscribers\": 4665\n },\n {\n \"id\": 29,\n \"name\": \"Prestashop\",\n \"totalBlacklisted\": 10,\n \"totalSubscribers\": 6543,\n \"uniqueSubscribers\": 6553\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"c175e62d-23d7-4d5a-bc46-7093ac21de08","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"40d55e83-c362-440b-9ad3-3cbb47ed0eb0","name":"Create a folder - default","request":{"urlPathTemplate":"/contacts/folders","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"40d55e83-c362-440b-9ad3-3cbb47ed0eb0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"64a96da1-15c5-426f-a455-f6ec46ff0434","name":"Returns a folder's details - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}","method":"GET","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"id\": 1,\n \"name\": \"Client_Folder\",\n \"totalBlacklisted\": 987,\n \"totalSubscribers\": 16778,\n \"uniqueSubscribers\": 17765\n}","headers":{"Content-Type":"application/json"}},"uuid":"64a96da1-15c5-426f-a455-f6ec46ff0434","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"701dc90d-1130-42e1-93d3-8ef73e8f8596","name":"Update a folder - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}","method":"PUT","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"701dc90d-1130-42e1-93d3-8ef73e8f8596","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a33a22a6-f7ae-41f1-9646-c37d999a9421","name":"Delete a folder (and all its lists) - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}","method":"DELETE","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a33a22a6-f7ae-41f1-9646-c37d999a9421","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1bbaf637-2edd-4ded-8338-3f42e8e93b45","name":"Get lists in a folder - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}/lists","method":"GET","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"count\": 3,\n \"lists\": [\n {\n \"id\": 46,\n \"name\": \"Reactiv\",\n \"totalBlacklisted\": 0,\n \"totalSubscribers\": 7655,\n \"uniqueSubscribers\": 7655\n },\n {\n \"id\": 41,\n \"name\": \"NY_Area\",\n \"totalBlacklisted\": 23,\n \"totalSubscribers\": 3654,\n \"uniqueSubscribers\": 3677\n },\n {\n \"id\": 22,\n \"name\": \"VIP_Customer\",\n \"totalBlacklisted\": 72,\n \"totalSubscribers\": 8753,\n \"uniqueSubscribers\": 8826\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"1bbaf637-2edd-4ded-8338-3f42e8e93b45","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c104d034-1156-452e-a1f5-90baae3a120e","name":"Import contacts - default","request":{"urlPathTemplate":"/contacts/import","method":"POST"},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"c104d034-1156-452e-a1f5-90baae3a120e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ede870d3-ebf8-4b09-851f-f8abb13c3b81","name":"Get all the lists - default","request":{"urlPathTemplate":"/contacts/lists","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"lists\": [\n {\n \"id\": 53,\n \"name\": \"Spanish_Speakers\",\n \"totalBlacklisted\": 65,\n \"totalSubscribers\": 5432,\n \"uniqueSubscribers\": 5497,\n \"folderId\": 1\n },\n {\n \"id\": 50,\n \"name\": \"Other\",\n \"totalBlacklisted\": 765,\n \"totalSubscribers\": 10976,\n \"uniqueSubscribers\": 11741,\n \"folderId\": 2\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ede870d3-ebf8-4b09-851f-f8abb13c3b81","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"ecaaf193-0526-47f7-a447-6866f25d6a35","name":"Create a list - default","request":{"urlPathTemplate":"/contacts/lists","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"ecaaf193-0526-47f7-a447-6866f25d6a35","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d2bcf613-ab25-4a1d-acfc-f9189c9abdce","name":"Get a list's details - default","request":{"urlPathTemplate":"/contacts/lists/{listId}","method":"GET","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"id\": 12,\n \"name\": \"Newsletter_Weekly\",\n \"totalBlacklisted\": 63,\n \"totalSubscribers\": 6533,\n \"uniqueSubscribers\": 6596,\n \"campaignStats\": [\n {\n \"campaignId\": 15,\n \"stats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 789,\n \"complaints\": 0,\n \"deferred\": 0,\n \"delivered\": 6632,\n \"estimatedViews\": 560,\n \"hardBounces\": 4,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 6645,\n \"softBounces\": 34,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 701,\n \"uniqueViews\": 3442,\n \"unsubscriptions\": 4,\n \"viewed\": 4322\n }\n },\n {\n \"campaignId\": 45,\n \"stats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 788,\n \"complaints\": 1,\n \"deferred\": 0,\n \"delivered\": 4078,\n \"estimatedViews\": 560,\n \"hardBounces\": 2,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 4334,\n \"softBounces\": 18,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 654,\n \"uniqueViews\": 987,\n \"unsubscriptions\": 4,\n \"viewed\": 1555\n }\n }\n ],\n \"createdAt\": \"2016-02-26T11:56:08Z\",\n \"dynamicList\": false,\n \"folderId\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"d2bcf613-ab25-4a1d-acfc-f9189c9abdce","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fd940864-d48a-47f4-8db8-5960a7657dcc","name":"Update a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}","method":"PUT","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fd940864-d48a-47f4-8db8-5960a7657dcc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f9aace2d-f1ee-48cf-9a00-2ce8a8e876de","name":"Delete a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}","method":"DELETE","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f9aace2d-f1ee-48cf-9a00-2ce8a8e876de","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1e736496-14de-4379-b319-5857e47950dc","name":"Get contacts in a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}/contacts","method":"GET","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"contacts\": [\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"email\": \"alex.pain@example.com\",\n \"emailBlacklisted\": false,\n \"id\": 45,\n \"listIds\": [\n 12,\n 9,\n 20\n ],\n \"listUnsubscribed\": [\n 1,\n 2\n ],\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"smsBlacklisted\": true\n },\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"email\": \"john.smith@example.com\",\n \"emailBlacklisted\": true,\n \"id\": 32,\n \"listIds\": [\n 12\n ],\n \"listUnsubscribed\": [\n 1\n ],\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"smsBlacklisted\": false\n },\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"email\": \"helen.rose@example.com\",\n \"emailBlacklisted\": true,\n \"id\": 65,\n \"listIds\": [\n 12,\n 9,\n 20\n ],\n \"listUnsubscribed\": [\n 1\n ],\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"smsBlacklisted\": false\n }\n ],\n \"count\": 17655\n}","headers":{"Content-Type":"application/json"}},"uuid":"1e736496-14de-4379-b319-5857e47950dc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f1dbcb2f-9c0d-4ccd-a750-28e2c2f9e6f9","name":"Add existing contacts to a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}/contacts/add","method":"POST","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":201,"body":"{\n \"contacts\": {\n \"failure\": [\n \"jeff32@example.com, jim56@example.com\"\n ],\n \"processId\": 78,\n \"success\": [\n \"success\"\n ],\n \"total\": 27\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"f1dbcb2f-9c0d-4ccd-a750-28e2c2f9e6f9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"36e0a4db-6281-4b17-bcbe-d10a330348a5","name":"Delete a contact from a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}/contacts/remove","method":"POST","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":201,"body":"{\n \"contacts\": {\n \"failure\": [\n \"jeff32@example.com, jim56@example.com\"\n ],\n \"processId\": 78,\n \"success\": [\n \"success\"\n ],\n \"total\": 27\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"36e0a4db-6281-4b17-bcbe-d10a330348a5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dd30aa5c-59ad-4ff0-a95f-bf685d7b279e","name":"Get all the segments - default","request":{"urlPathTemplate":"/contacts/segments","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"segments\": [\n {\n \"categoryName\": \"Name1\",\n \"id\": 53,\n \"segmentName\": \"Segment1\",\n \"updatedAt\": \"2017-03-12T12:30:00Z\"\n },\n {\n \"categoryName\": \"Name2\",\n \"id\": 50,\n \"segmentName\": \"Segment2\",\n \"updatedAt\": \"2017-03-12T12:30:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"dd30aa5c-59ad-4ff0-a95f-bf685d7b279e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5a0e7075-a413-4c22-a2bf-aa2f8e383d6d","name":"Get a contact's details - default","request":{"urlPathTemplate":"/contacts/{identifier}","method":"GET","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"{\n \"attributes\": {},\n \"createdAt\": \"2017-05-02T16:40:31Z\",\n \"email\": \"peggy.rain@example.com\",\n \"emailBlacklisted\": false,\n \"id\": 42,\n \"listIds\": [\n 40\n ],\n \"listUnsubscribed\": [\n 1000000\n ],\n \"modifiedAt\": \"2017-05-02T16:40:31Z\",\n \"smsBlacklisted\": false,\n \"statistics\": {\n \"clicked\": [\n {\n \"campaignId\": 21,\n \"links\": [\n {\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:25:01Z\",\n \"ip\": \"66.249.93.118\",\n \"url\": \"https://url.domain.com/fbe5387ec717e333628380454f68670010b205ff/1/go?uid={EMAIL}&utm_source=brevo&utm_campaign=test_camp&utm_medium=email\"\n }\n ]\n }\n ],\n \"complaints\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"delivered\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T21:24:56Z\"\n }\n ],\n \"hardBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"messagesSent\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T20:15:13Z\"\n },\n {\n \"campaignId\": 42,\n \"eventTime\": \"2016-10-17T10:30:01Z\"\n }\n ],\n \"opened\": [\n {\n \"campaignId\": 21,\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:24:56Z\",\n \"ip\": \"66.249.93.118\"\n },\n {\n \"campaignId\": 68,\n \"count\": 1,\n \"eventTime\": \"2017-01-30T13:56:40Z\",\n \"ip\": \"66.249.93.217\"\n }\n ],\n \"softBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"transacAttributes\": [\n {}\n ],\n \"unsubscriptions\": {\n \"adminUnsubscription\": [\n {\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ],\n \"userUnsubscription\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ]\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"5a0e7075-a413-4c22-a2bf-aa2f8e383d6d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"75a6a0e6-ae00-42cb-82ae-0bbe1f8bd2d1","name":"Update a contact - default","request":{"urlPathTemplate":"/contacts/{identifier}","method":"PUT","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"75a6a0e6-ae00-42cb-82ae-0bbe1f8bd2d1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fb8d40ed-00fd-4acc-88a7-32580773691f","name":"Delete a contact - default","request":{"urlPathTemplate":"/contacts/{identifier}","method":"DELETE","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fb8d40ed-00fd-4acc-88a7-32580773691f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9797e88c-e80c-4130-9605-8986d5de0403","name":"Get email campaigns' statistics for a contact - default","request":{"urlPathTemplate":"/contacts/{identifier}/campaignStats","method":"GET","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"{\n \"clicked\": [\n {\n \"campaignId\": 21,\n \"links\": [\n {\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:25:01Z\",\n \"ip\": \"66.249.93.118\",\n \"url\": \"https://url.domain.com/fbe5387ec717e333628380454f68670010b205ff/1/go?uid={EMAIL}&utm_source=brevo&utm_campaign=test_camp&utm_medium=email\"\n }\n ]\n }\n ],\n \"complaints\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"delivered\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T21:24:56Z\"\n }\n ],\n \"hardBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"messagesSent\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T20:15:13Z\"\n },\n {\n \"campaignId\": 42,\n \"eventTime\": \"2016-10-17T10:30:01Z\"\n },\n {\n \"campaignId\": 45,\n \"eventTime\": \"2016-11-09T11:45:02Z\"\n }\n ],\n \"opened\": [\n {\n \"campaignId\": 21,\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:24:56Z\",\n \"ip\": \"66.249.93.118\"\n },\n {\n \"campaignId\": 45,\n \"count\": 1,\n \"eventTime\": \"2017-01-30T13:56:40Z\",\n \"ip\": \"66.249.93.217\"\n }\n ],\n \"softBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"transacAttributes\": [\n {\n \"orderDate\": \"2017-03-12\",\n \"orderId\": 248,\n \"orderPrice\": 24.99\n }\n ],\n \"unsubscriptions\": {\n \"adminUnsubscription\": [\n {\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ],\n \"userUnsubscription\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ]\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"9797e88c-e80c-4130-9605-8986d5de0403","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"989a2ce4-8788-48cc-963d-3d86cc2b2dd2","name":"Sets agentβs status to online for 2-3 minutes - default","request":{"urlPathTemplate":"/conversations/agentOnlinePing","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"989a2ce4-8788-48cc-963d-3d86cc2b2dd2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0b2458f6-3c0f-4f03-9f63-8051466d793b","name":"Send a message as an agent - default","request":{"urlPathTemplate":"/conversations/messages","method":"POST"},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1482512803740,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Hello! How can I help you?\",\n \"id\": \"eYBEm3gq3zc5ayE2g\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": false,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Hello! How can I help you?\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"0b2458f6-3c0f-4f03-9f63-8051466d793b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"73c7e27f-534f-4bff-ae89-6508af694971","name":"Get a message - default","request":{"urlPathTemplate":"/conversations/messages/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1482512803740,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Hello! How can I help you?\",\n \"id\": \"eYBEm3gq3zc5ayE2g\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": false,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Hello! How can I help you?\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"73c7e27f-534f-4bff-ae89-6508af694971","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"92155bd1-c19b-4aad-99c9-8a69133fc185","name":"Update a message sent by an agent - default","request":{"urlPathTemplate":"/conversations/messages/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1482512803740,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Hello! How can I help you?\",\n \"id\": \"eYBEm3gq3zc5ayE2g\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": false,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Hello! How can I help you?\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"92155bd1-c19b-4aad-99c9-8a69133fc185","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"55448424-484f-42a8-b091-f8c24234f898","name":"Delete a message sent by an agent - default","request":{"urlPathTemplate":"/conversations/messages/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"55448424-484f-42a8-b091-f8c24234f898","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7da39f40-5660-4486-b572-835f3f204973","name":"Send an automated message to a visitor - default","request":{"urlPathTemplate":"/conversations/pushedMessages","method":"POST"},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1470222622433,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"id\": \"AXCR3k9bpSY7bpuh7\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": true,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"7da39f40-5660-4486-b572-835f3f204973","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"12a96082-f3dc-4674-b4a6-a2fc4b6aea92","name":"Get an automated message - default","request":{"urlPathTemplate":"/conversations/pushedMessages/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1470222622433,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"id\": \"AXCR3k9bpSY7bpuh7\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": true,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"12a96082-f3dc-4674-b4a6-a2fc4b6aea92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"88f6c974-0fa5-4c85-bd4a-2c306144fb5a","name":"Update an automated message - default","request":{"urlPathTemplate":"/conversations/pushedMessages/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1470222622433,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 4668 7775 9233 54\",\n \"id\": \"AXCR3k9bpSY7bpuh7\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": true,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 4668 7775 9233 54\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"88f6c974-0fa5-4c85-bd4a-2c306144fb5a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a43cca1b-0cb5-4197-ad31-8ce0e455a7fe","name":"Delete an automated message - default","request":{"urlPathTemplate":"/conversations/pushedMessages/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a43cca1b-0cb5-4197-ad31-8ce0e455a7fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"27ddcd9f-5f2e-408f-a518-a4e395c047ee","name":"Set visitor group assignment - default","request":{"urlPathTemplate":"/conversations/visitorGroup","method":"PUT"},"response":{"status":200,"body":"{\n \"groupId\": \"PjRBMhWGen6aRHjif\",\n \"visitorId\": \"AXCR3k9bpSY7bpuh7\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"27ddcd9f-5f2e-408f-a518-a4e395c047ee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6e38c169-881b-465d-ae5b-201dfe4364a5","name":"Return all your categories - default","request":{"urlPathTemplate":"/categories","method":"GET"},"response":{"status":200,"body":"{\n \"categories\": [\n {\n \"createdAt\": \"2021-12-31T11:42:35.638Z\",\n \"id\": \"C19\",\n \"isDeleted\": true,\n \"modifiedAt\": \"2022-03-03T14:48:31.867Z\",\n \"name\": \"Food\",\n \"url\": \"http://mydomain.com/category/food\"\n },\n {\n \"createdAt\": \"2021-12-31T11:42:35.638Z\",\n \"id\": \"C20\",\n \"isDeleted\": true,\n \"modifiedAt\": \"2022-03-03T14:48:31.867Z\",\n \"name\": \"clothing\",\n \"url\": \"http://mydomain.com/category/clothing\"\n }\n ],\n \"count\": 2\n}","headers":{"Content-Type":"application/json"}},"uuid":"6e38c169-881b-465d-ae5b-201dfe4364a5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c1c0c1db-676d-40e5-954f-ce7abd8fa780","name":"Create/Update a category - default","request":{"urlPathTemplate":"/categories","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"c1c0c1db-676d-40e5-954f-ce7abd8fa780","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3355346d-e446-4635-9316-d9de9c0c8459","name":"Create categories in batch - default","request":{"urlPathTemplate":"/categories/batch","method":"POST"},"response":{"status":201,"body":"{\n \"createdCount\": 2,\n \"updatedCount\": 7\n}","headers":{"Content-Type":"application/json"}},"uuid":"3355346d-e446-4635-9316-d9de9c0c8459","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e9a3bc64-c4fb-42bc-a44c-51ff0565f57d","name":"Get a category details - default","request":{"urlPathTemplate":"/categories/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"id\": \"C11\",\n \"isDeleted\": true,\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"name\": \"Electronics\",\n \"url\": \"http://mydomain.com/category/clothing\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e9a3bc64-c4fb-42bc-a44c-51ff0565f57d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4aa9f4f1-3b05-446e-a5c8-175ce020f7dd","name":"Activate the eCommerce app - default","request":{"urlPathTemplate":"/ecommerce/activate","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4aa9f4f1-3b05-446e-a5c8-175ce020f7dd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ef76fef3-dd84-4cf8-9fa5-ff136eea6618","name":"Get attribution metrics for one or more Brevo campaigns or workflows - default","request":{"urlPathTemplate":"/ecommerce/attribution/metrics","method":"GET","queryParameters":{"periodFrom":{"equalTo":"2022-01-02T00:00:00Z"},"periodTo":{"equalTo":"2022-01-03T00:00:00Z"}}},"response":{"status":200,"body":"{\n \"results\": [\n {\n \"averageBasket\": 3,\n \"conversionSource\": \"email_campaign\",\n \"id\": 1.1,\n \"ordersCount\": 300,\n \"revenue\": 900\n },\n {\n \"averageBasket\": 4,\n \"conversionSource\": \"email_campaign\",\n \"id\": 1.1,\n \"ordersCount\": 200,\n \"revenue\": 800\n }\n ],\n \"totals\": {\n \"averageBasket\": 3.4,\n \"ordersCount\": 500,\n \"revenue\": 1700\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"ef76fef3-dd84-4cf8-9fa5-ff136eea6618","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a673ac7e-f9a7-4c21-bd80-b49ff3c73efc","name":"Get detailed attribution metrics for a single Brevo campaign or workflow - default","request":{"urlPathTemplate":"/ecommerce/attribution/metrics/{conversionSource}/{conversionSourceId}","method":"GET","pathParameters":{"conversionSource":{"equalTo":"email_campaign"},"conversionSourceId":{"equalTo":"sale"}}},"response":{"status":200,"body":"{\n \"averageBasket\": 1.1,\n \"conversionSource\": \"email_campaign\",\n \"id\": 1.1,\n \"ordersCount\": 1.1,\n \"revenue\": 1.1,\n \"newCustomersCount\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"a673ac7e-f9a7-4c21-bd80-b49ff3c73efc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d80e42ab-4376-47f6-9971-baead08cd9ec","name":"Get attributed product sales for a single Brevo campaign or workflow - default","request":{"urlPathTemplate":"/ecommerce/attribution/products/{conversionSource}/{conversionSourceId}","method":"GET","pathParameters":{"conversionSource":{"equalTo":"email_campaign"},"conversionSourceId":{"equalTo":"sale"}}},"response":{"status":200,"body":"{\n \"products\": [\n {\n \"id\": \"1\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"name\": \"Milky Way Galaxy\",\n \"ordersCount\": 200,\n \"price\": 1000,\n \"revenue\": 999.99,\n \"sku\": \"sku-1\",\n \"url\": \"https://mydomain.com/products/alpina-panoma-classic\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"d80e42ab-4376-47f6-9971-baead08cd9ec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ab816e77-ae78-42da-b0ac-c9e2a426dd38","name":"Get the ISO 4217 compliant display currency code for your Brevo account - default","request":{"urlPathTemplate":"/ecommerce/config/displayCurrency","method":"GET"},"response":{"status":200,"body":"{\n \"code\": \"EUR\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"ab816e77-ae78-42da-b0ac-c9e2a426dd38","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c8c71b7b-bc9d-4d4f-83d0-1d4a57463596","name":"Set the ISO 4217 compliant display currency code for your Brevo account - default","request":{"urlPathTemplate":"/ecommerce/config/displayCurrency","method":"POST"},"response":{"status":200,"body":"{\n \"code\": \"EUR\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c8c71b7b-bc9d-4d4f-83d0-1d4a57463596","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a36a1140-3b78-405a-bb99-4be25b0e6f61","name":"Get order details - default","request":{"urlPathTemplate":"/orders","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 1,\n \"orders\": [\n {\n \"amount\": 2000,\n \"billing\": {\n \"address\": \"Sec 62, Noida\",\n \"city\": \"Noida\",\n \"country\": \"India\",\n \"countryCode\": \"IN\",\n \"paymentMethod\": \"Net banking\",\n \"phone\": 9238283982,\n \"postCode\": 110001,\n \"region\": \"North India\"\n },\n \"contact_id\": 2,\n \"coupons\": [\n \"flat50\",\n \"flat40\"\n ],\n \"createdAt\": \"2021-12-31T11:42:35.638Z\",\n \"email\": \"testvisitor@sendinblue.com\",\n \"id\": \"order1803\",\n \"identifiers\": {\n \"ext_id\": \"ab12\",\n \"loyalty_subscription_id\": \"1234\"\n },\n \"products\": [\n {\n \"price\": 100,\n \"productId\": 21,\n \"quantity\": 2,\n \"quantityFloat\": 0,\n \"variantId\": \"P100\"\n },\n {\n \"price\": 100,\n \"productId\": 21,\n \"quantity\": 0,\n \"quantityFloat\": 2.52,\n \"variantId\": \"P15756\"\n }\n ],\n \"status\": \"complete\",\n \"storeId\": \"123\",\n \"updatedAt\": \"2022-03-03T14:48:31.867Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a36a1140-3b78-405a-bb99-4be25b0e6f61","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7063107e-0ad5-4bbd-97ec-def7bdb05465","name":"Managing the status of the order - default","request":{"urlPathTemplate":"/orders/status","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"7063107e-0ad5-4bbd-97ec-def7bdb05465","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1d3a52e5-1eb4-4b21-9a58-9136f4d6cdda","name":"Create orders in batch - default","request":{"urlPathTemplate":"/orders/status/batch","method":"POST"},"response":{"status":202,"body":"{\n \"batchId\": 1.1,\n \"count\": 17655\n}","headers":{"Content-Type":"application/json"}},"uuid":"1d3a52e5-1eb4-4b21-9a58-9136f4d6cdda","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fd7eae8c-354e-4a43-8cea-0aa947291dea","name":"Return all your products - default","request":{"urlPathTemplate":"/products","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"products\": [\n {\n \"categories\": [\n \"279638835374\",\n \"279502848174\"\n ],\n \"createdAt\": \"2022-06-30T10:29:16.078Z\",\n \"id\": \"P11\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"isDeleted\": true,\n \"metaInfo\": {\n \"brand\": \"addidas\",\n \"description\": \"Shoes for sports\"\n },\n \"modifiedAt\": \"2022-06-30T10:29:16.078Z\",\n \"name\": \"Alpina Panoma Classic\",\n \"parentId\": \"parentId\",\n \"price\": 49.95,\n \"s3Original\": \"https://img-ecom.mailinblue.com/path-to-original/img.jpg\",\n \"s3ThumbAnalytics\": \"https://img-ecom.mailinblue.com/path-to-analytics/img.jpg\",\n \"s3ThumbEditor\": \"https://img-ecom.mailinblue.com/path-to-editor/img.jpg\",\n \"sku\": \"186622-9\",\n \"stock\": 100,\n \"url\": \"https://mydomain.com/products/alpina-panoma-classic\"\n },\n {\n \"categories\": [\n \"2d79638835374\",\n \"27d9502848174\"\n ],\n \"createdAt\": \"2022-06-30T10:29:16.078Z\",\n \"id\": \"P11\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"isDeleted\": true,\n \"metaInfo\": {\n \"brand\": \"addidas\",\n \"description\": \"Shoes for sports\"\n },\n \"modifiedAt\": \"2022-06-30T10:29:16.078Z\",\n \"name\": \"Alpina Panoma Classic2\",\n \"parentId\": \"parentId\",\n \"price\": 49.95,\n \"s3Original\": \"https://img-ecom.mailinblue.com/path-to-original/img.jpg\",\n \"s3ThumbAnalytics\": \"https://img-ecom.mailinblue.com/path-to-analytics/img.jpg\",\n \"s3ThumbEditor\": \"https://img-ecom.mailinblue.com/path-to-editor/img.jpg\",\n \"sku\": \"186622-9\",\n \"stock\": 350,\n \"url\": \"https://mydomain.com/products/alpina-panoma-classic2\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fd7eae8c-354e-4a43-8cea-0aa947291dea","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8a42981c-cdd8-404e-bdb0-edaac19b7e0c","name":"Create/Update a product - default","request":{"urlPathTemplate":"/products","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"8a42981c-cdd8-404e-bdb0-edaac19b7e0c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5f2f0859-18a7-463c-bee7-4afb4ba092b0","name":"Create products in batch - default","request":{"urlPathTemplate":"/products/batch","method":"POST"},"response":{"status":201,"body":"{\n \"createdCount\": 2,\n \"updatedCount\": 7\n}","headers":{"Content-Type":"application/json"}},"uuid":"5f2f0859-18a7-463c-bee7-4afb4ba092b0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dcc8be20-9ebc-41b7-a9e0-2e9b9004756a","name":"Get a product's details - default","request":{"urlPathTemplate":"/products/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"categories\": [\n \"categories\"\n ],\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"id\": \"P11\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"isDeleted\": true,\n \"metaInfo\": {\n \"brand\": \"addidas\",\n \"description\": \"Shoes for sports\"\n },\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"name\": \"Iphone 11\",\n \"parentId\": \"parentId\",\n \"price\": 1.1,\n \"s3Original\": \"s3Original\",\n \"s3ThumbAnalytics\": \"s3ThumbAnalytics\",\n \"s3ThumbEditor\": \"s3ThumbEditor\",\n \"sku\": \"sku\",\n \"stock\": 100,\n \"url\": \"http://mydomain.com/product/electronics/product1\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"dcc8be20-9ebc-41b7-a9e0-2e9b9004756a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e82388ef-e4d4-4ac5-874c-2f802a602bed","name":"Create a product alert for a contact - default","request":{"urlPathTemplate":"/products/{id}/alerts/{type}","method":"POST","pathParameters":{"id":{"equalTo":"id"},"type":{"equalTo":"back_in_stock"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e82388ef-e4d4-4ac5-874c-2f802a602bed","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1afa5f6e-118c-4482-b744-5ef2a9799cf5","name":"Get all your coupon collections - default","request":{"urlPathTemplate":"/couponCollections","method":"GET"},"response":{"status":200,"body":"{\n \"createdAt\": \"2023-01-06T05:03:47Z\",\n \"defaultCoupon\": \"10 OFF\",\n \"expirationDate\": \"2024-01-01T00:00:00Z\",\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"name\": \"SummerPromotions\",\n \"remainingCoupons\": 5000,\n \"remainingCouponsAlert\": 5,\n \"remainingDaysAlert\": 5,\n \"totalCoupons\": 10000\n}","headers":{"Content-Type":"application/json"}},"uuid":"1afa5f6e-118c-4482-b744-5ef2a9799cf5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e6cacd7a-7ba8-4b0a-822c-0d6971f40073","name":"Create Π° coupon collection - default","request":{"urlPathTemplate":"/couponCollections","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e6cacd7a-7ba8-4b0a-822c-0d6971f40073","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dff4a2fb-73ac-479f-ab4c-2c9110fd1537","name":"Get a coupon collection by id - default","request":{"urlPathTemplate":"/couponCollections/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2023-01-06T05:03:47Z\",\n \"defaultCoupon\": \"10 OFF\",\n \"expirationDate\": \"2024-01-01T00:00:00Z\",\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"name\": \"SummerPromotions\",\n \"remainingCoupons\": 5000,\n \"remainingCouponsAlert\": 5,\n \"remainingDaysAlert\": 5,\n \"totalCoupons\": 10000\n}","headers":{"Content-Type":"application/json"}},"uuid":"dff4a2fb-73ac-479f-ab4c-2c9110fd1537","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e28907c7-b011-4634-bb47-d32e210b128b","name":"Update a coupon collection by id - default","request":{"urlPathTemplate":"/couponCollections/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"defaultCoupon\": \"10 OFF\",\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"name\": \"SummerPromotions\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e28907c7-b011-4634-bb47-d32e210b128b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eef10e8c-75d8-4adc-9fb0-8c2daeb31145","name":"Create coupons for a coupon collection - default","request":{"urlPathTemplate":"/coupons","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"eef10e8c-75d8-4adc-9fb0-8c2daeb31145","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"35f2e6da-c185-4829-b6ce-3bd466f76681","name":"Create a payment request - default","request":{"urlPathTemplate":"/payments/requests","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 122,\n \"url\": \"https://pay.brevo.com/payment/6d4ec0b2b48ef803df4103ve\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"35f2e6da-c185-4829-b6ce-3bd466f76681","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"173baf22-0f60-411a-b5e3-f68c427c3a5d","name":"Get payment request details - default","request":{"urlPathTemplate":"/payments/requests/{id}","method":"GET","pathParameters":{"id":{"equalTo":"050db7b0-9bb7-4c1e-9c68-5a8dace8c1dc"}}},"response":{"status":200,"body":"{\n \"cart\": {\n \"currency\": \"EUR\",\n \"specificAmount\": 1200\n },\n \"configuration\": {\n \"customSuccessUrl\": \"https://my-company.com/payment-success\"\n },\n \"contactId\": 43,\n \"notification\": {\n \"channel\": \"email\",\n \"text\": \"Please pay for your yoga class.\"\n },\n \"numberOfRemindersSent\": 5,\n \"reference\": \"Invoice #INV0001\\n\",\n \"status\": \"paid\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"173baf22-0f60-411a-b5e3-f68c427c3a5d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"87ef813d-0336-4656-a5b5-e0899662397f","name":"Delete a payment request. - default","request":{"urlPathTemplate":"/payments/requests/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"9ae7d68a-565c-4695-9381-d8fb3e3a14cc"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"87ef813d-0336-4656-a5b5-e0899662397f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"aed029ff-9be1-4acb-9dcf-a4c3e218a560","name":"Create an event - default","request":{"urlPathTemplate":"/events","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"aed029ff-9be1-4acb-9dcf-a4c3e218a560","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"89ae63a4-2b31-419a-87b1-c44e0fa54de2","name":"Create events in batch - default","request":{"urlPathTemplate":"/events/batch","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"89ae63a4-2b31-419a-87b1-c44e0fa54de2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"09aa7143-15a9-433c-a1e0-3444863bbf64","name":"Get the list of all the events for the received emails. - default","request":{"urlPathTemplate":"/inbound/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"date\": \"2017-03-11T12:30:00Z\",\n \"recipient\": \"alexa@example.com\",\n \"sender\": \"john@example.com\",\n \"uuid\": \"1a825d56-029b-4a41-b8e4-1a825d56\"\n },\n {\n \"date\": \"2017-03-12T12:30:00Z\",\n \"recipient\": \"bob@example.com\",\n \"sender\": \"alice@example.com\",\n \"uuid\": \"1a825d56-029b-4a41-b8e4-61670463431b\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"09aa7143-15a9-433c-a1e0-3444863bbf64","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"ee4248db-9736-4af1-a32a-5a7de6f5328a","name":"Fetch all events history for one particular received email. - default","request":{"urlPathTemplate":"/inbound/events/{uuid}","method":"GET","pathParameters":{"uuid":{"equalTo":"uuid"}}},"response":{"status":200,"body":"{\n \"attachments\": [\n {\n \"contentLength\": 12345,\n \"contentType\": \"application/pdf\",\n \"name\": \"invoice.pdf\"\n }\n ],\n \"deliveredAt\": \"2017-03-12T12:31:00Z\",\n \"logs\": [\n {\n \"date\": \"2017-03-12T12:30:00Z\",\n \"type\": \"received\"\n },\n {\n \"date\": \"2017-03-12T12:30:04Z\",\n \"type\": \"webhookFailed\"\n },\n {\n \"date\": \"2017-03-12T12:31:04Z\",\n \"type\": \"webhookDelivered\"\n }\n ],\n \"messageId\": \"\",\n \"receivedAt\": \"2017-03-12T12:30:00Z\",\n \"recipient\": \"bob@example.com\",\n \"sender\": \"alice@example.com\",\n \"subject\": \"Re: Question about your API\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"ee4248db-9736-4af1-a32a-5a7de6f5328a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3426b7cd-c7c6-4cd0-8359-916c1482c4a3","name":"Retrieve inbound attachment with download token. - default","request":{"urlPathTemplate":"/inbound/attachments/{downloadToken}","method":"GET","pathParameters":{"downloadToken":{"equalTo":"downloadToken"}}},"response":{"status":200,"body":"{\n \"key\": \"value\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"3426b7cd-c7c6-4cd0-8359-916c1482c4a3","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b8273ac4-3d1a-4b9a-b003-bb49ef16337f","name":"Get Active Balances API - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/active-balance","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}},"queryParameters":{"contact_id":{"equalTo":"1"},"balance_definition_id":{"equalTo":"balance_definition_id"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"b8273ac4-3d1a-4b9a-b003-bb49ef16337f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7ed4ff5a-868f-45ef-a95a-550b62f69d5a","name":"Get balance definition list - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"7ed4ff5a-868f-45ef-a95a-550b62f69d5a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9db15f6f-dd09-4033-bff7-9d94ef6ae471","name":"Create balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"9db15f6f-dd09-4033-bff7-9d94ef6ae471","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5171ff4c-8ab1-4886-96b9-72845239dcb2","name":"Get balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"{\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"5171ff4c-8ab1-4886-96b9-72845239dcb2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1da76c71-d209-4641-9094-43a7214838ef","name":"Update balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"{\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1da76c71-d209-4641-9094-43a7214838ef","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a3817b26-f6c9-4900-86c4-6d4869b41b38","name":"Delete balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a3817b26-f6c9-4900-86c4-6d4869b41b38","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d2118a4-5218-46f1-8513-ef75d832d7d5","name":"Create balance limits - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d2118a4-5218-46f1-8513-ef75d832d7d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5def443d-7ef0-4c5c-99d3-9e38a21ed142","name":"Get balance limits - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"},"blid":{"equalTo":"blid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"5def443d-7ef0-4c5c-99d3-9e38a21ed142","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3c24feb3-061c-4954-a12f-81100122b866","name":"Updates balance limit - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"},"blid":{"equalTo":"blid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"3c24feb3-061c-4954-a12f-81100122b866","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"60e7789f-ecdc-4330-96f5-426c8865aa02","name":"Delete balance limit - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"},"blid":{"equalTo":"blid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"60e7789f-ecdc-4330-96f5-426c8865aa02","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a00ea68f-14e1-4bbc-a3ad-1f4c555dbd92","name":"Get balance list - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/contact-balances","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"balances\": [\n {\n \"contactId\": 1,\n \"loyaltySubscriptionId\": \"loyaltySubscriptionId\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1.1\n }\n ],\n \"count\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"a00ea68f-14e1-4bbc-a3ad-1f4c555dbd92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"24af1e00-9fca-4515-89c5-bce7048b3f2e","name":"Create balance order - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/create-order","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"dueAt\": \"dueAt\",\n \"expiresAt\": \"expiresAt\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"processedAt\": \"processedAt\",\n \"transactionid\": \"transactionid\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"24af1e00-9fca-4515-89c5-bce7048b3f2e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"bd77b0ff-3379-4930-aa93-f8cc25163bee","name":"Get subscription balances - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/subscriptions/{cid}/balances","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"cid"}}},"response":{"status":200,"body":"{\n \"balance\": [\n {\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"value\": 1.1\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"bd77b0ff-3379-4930-aa93-f8cc25163bee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"06abbd3e-aec8-48f0-9c90-49887599e5ac","name":"Create subscription balances - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/subscriptions/{cid}/balances","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"cid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"consumedAt\": \"consumedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"expiresAt\": \"expiresAt\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"organizationId\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"06abbd3e-aec8-48f0-9c90-49887599e5ac","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d806b377-c3f2-46e1-af10-826fc8cb7a77","name":"Get Transaction History API - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transaction-history","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}},"queryParameters":{"contactId":{"equalTo":"1"},"balanceDefinitionId":{"equalTo":"balanceDefinitionId"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"contactId\": 1,\n \"count\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"transactionHistory\": [\n {\n \"amount\": 1.1,\n \"balanceExpirationDate\": \"balanceExpirationDate\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"createdAt\": \"createdAt\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"d806b377-c3f2-46e1-af10-826fc8cb7a77","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"01dd65f2-fc30-4f9a-94e7-cf908b0c0b6a","name":"Create new transaction - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transactions","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"eventTime\": \"eventTime\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"01dd65f2-fc30-4f9a-94e7-cf908b0c0b6a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"bd42f484-63b7-431c-9d4b-a149ff9cd0b8","name":"Cancel transaction - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transactions/{tid}/cancel","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"eventTime\": \"eventTime\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"bd42f484-63b7-431c-9d4b-a149ff9cd0b8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fbed8bbf-cc97-48fb-a7f6-e56e37f2cf2e","name":"Complete transaction - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transactions/{tid}/complete","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"eventTime\": \"eventTime\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"fbed8bbf-cc97-48fb-a7f6-e56e37f2cf2e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"26205d6c-548c-4928-8845-8eb6528a066d","name":"Get loyalty program list - default","request":{"urlPathTemplate":"/loyalty/config/programs","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"26205d6c-548c-4928-8845-8eb6528a066d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"58d70d75-ea78-49d2-a9d6-beab3075e797","name":"Create loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs","method":"POST"},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"58d70d75-ea78-49d2-a9d6-beab3075e797","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c0fa09f4-d2b6-46f5-9560-abd8eb19c934","name":"Get loyalty program Info - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c0fa09f4-d2b6-46f5-9560-abd8eb19c934","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"861e512a-8f3c-4e67-9519-b050d07984c6","name":"Update loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"861e512a-8f3c-4e67-9519-b050d07984c6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a87fbb4c-71e6-4806-9622-174c92be89d1","name":"Delete Loyalty Program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a87fbb4c-71e6-4806-9622-174c92be89d1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8a2689f4-70a0-4e02-8ce4-3c55e07bc708","name":"Partially update loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"PATCH","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8a2689f4-70a0-4e02-8ce4-3c55e07bc708","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d32199cf-9ffa-4318-a330-2e9fda3da2d2","name":"Get Subscription Data - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/account-info","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balance\": {\n \"balances\": [\n {}\n ],\n \"contactId\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\"\n },\n \"members\": [\n {\n \"createdAt\": \"createdAt\",\n \"memberContactId\": 1,\n \"updatedAt\": \"updatedAt\"\n }\n ],\n \"reward\": [\n {\n \"code\": \"code\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"updatedAt\"\n }\n ],\n \"tier\": [\n {\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"groupId\": \"groupId\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"tierId\": \"tierId\",\n \"updatedAt\": \"updatedAt\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"d32199cf-9ffa-4318-a330-2e9fda3da2d2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0878ece4-9fe9-491a-9a7c-daaf7cf9c341","name":"Delete subscription - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/contact/{cid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"0878ece4-9fe9-491a-9a7c-daaf7cf9c341","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e628ecea-6ac2-4237-bf4e-d3e911f50954","name":"Publish loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/publish","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e628ecea-6ac2-4237-bf4e-d3e911f50954","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c63d1aae-db4f-4b4c-b82f-19e95683e037","name":"Create subscription member - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/subscription-members","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"createdAt\",\n \"memberContactIds\": [\n 1\n ],\n \"organizationId\": 1,\n \"ownerContactId\": 1,\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c63d1aae-db4f-4b4c-b82f-19e95683e037","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"efc3a783-b09a-41eb-8c6f-6f3f03271ef4","name":"Delete subscription member - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/subscription-members","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"}},"queryParameters":{"memberContactIds":{"equalTo":"memberContactIds"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"efc3a783-b09a-41eb-8c6f-6f3f03271ef4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c73cc6cc-b51b-4e8a-ae72-3446029b9ec5","name":"Create subscription - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/subscriptions","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"loyaltySubscriptionId\": \"loyaltySubscriptionId\",\n \"organizationId\": 1,\n \"updatedAt\": \"updatedAt\",\n \"versionId\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"c73cc6cc-b51b-4e8a-ae72-3446029b9ec5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"da280697-1454-4e11-996a-89c499cf8d7f","name":"Get code count - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/code-pools/{cpid}/codes-count","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"cpid":{"equalTo":"cpid"}}},"response":{"status":200,"body":"{\n \"count\": 1000000\n}","headers":{"Content-Type":"application/json"}},"uuid":"da280697-1454-4e11-996a-89c499cf8d7f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d324fa9-3782-4213-ab50-8574dc117f03","name":"Get Reward Page API - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/offers","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"endDate\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"publicImage\": \"publicImage\",\n \"startDate\": \"2024-01-15T09:30:00Z\",\n \"state\": \"state\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"totalCount\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d324fa9-3782-4213-ab50-8574dc117f03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e24ddc18-7dbb-4302-828c-d6e53ebb4a34","name":"Create a reward - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/offers","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"publicDescription\": \"publicDescription\",\n \"publicImage\": \"publicImage\",\n \"publicName\": \"publicName\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e24ddc18-7dbb-4302-828c-d6e53ebb4a34","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"661c8611-a50c-4e77-aad2-b152b4a15e63","name":"Create a voucher - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/attribute","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"code\": \"code\",\n \"consumedAt\": \"consumedAt\",\n \"contactId\": 1000000,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"expirationDate\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"value\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"661c8611-a50c-4e77-aad2-b152b4a15e63","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"aa8692b0-126d-488d-b643-8fe0de2f8405","name":"Create redeem voucher request - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/redeem","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"cancelledAt\": \"2024-01-15T09:30:00Z\",\n \"completedAt\": \"2024-01-15T09:30:00Z\",\n \"contactId\": 1000000,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"debitTransactionId\": \"debitTransactionId\",\n \"expiresAt\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"2024-01-15T09:30:00Z\",\n \"rewardAttributionId\": \"rewardAttributionId\",\n \"status\": \"status\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"aa8692b0-126d-488d-b643-8fe0de2f8405","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"99e6b97f-e193-4c85-b833-07efab4f9b5b","name":"Complete redeem voucher request - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/redeem/{tid}/complete","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"cancelledAt\": \"2024-01-15T09:30:00Z\",\n \"completedAt\": \"2024-01-15T09:30:00Z\",\n \"contactId\": 1000000,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"debitTransactionId\": \"debitTransactionId\",\n \"expiresAt\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"2024-01-15T09:30:00Z\",\n \"rewardAttributionId\": \"rewardAttributionId\",\n \"status\": \"status\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"99e6b97f-e193-4c85-b833-07efab4f9b5b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"919890cf-9d52-46fe-87bc-03565bdc4697","name":"Revoke vouchers - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/revoke","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"919890cf-9d52-46fe-87bc-03565bdc4697","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"53d2fcd5-6b39-4fa3-a257-21f60d24efc5","name":"Validate a reward - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/validate","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"authorize\": true\n}","headers":{"Content-Type":"application/json"}},"uuid":"53d2fcd5-6b39-4fa3-a257-21f60d24efc5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"66e13a60-2e6c-4f3b-9ff7-fc1cdcc147b8","name":"Get reward information - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/{rid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"rid":{"equalTo":"rid"}}},"response":{"status":200,"body":"{\n \"attributionPerConsumer\": 1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"code\": \"code\",\n \"codeCount\": 1000000,\n \"codeGeneratorId\": \"codeGeneratorId\",\n \"codePoolId\": \"codePoolId\",\n \"config\": \"config\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"disabledAt\": \"2024-01-15T09:30:00Z\",\n \"endDate\": \"2024-01-15T09:30:00Z\",\n \"expirationDate\": \"2024-01-15T09:30:00Z\",\n \"expirationModifier\": \"startOfPeriod\",\n \"expirationUnit\": \"expirationUnit\",\n \"expirationValue\": 1,\n \"generator\": {\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n },\n \"id\": \"id\",\n \"limits\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"limitValue\": 1,\n \"rewardLimitId\": \"rewardLimitId\",\n \"slidingSchedule\": true,\n \"type\": \"type\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"products\": [\n {\n \"createdAt\": \"createdAt\",\n \"imageRef\": \"imageRef\",\n \"productId\": \"productId\",\n \"value\": \"value\"\n }\n ],\n \"publicDescription\": \"publicDescription\",\n \"publicImage\": \"publicImage\",\n \"publicName\": \"publicName\",\n \"redeemPerConsumer\": 1,\n \"redeemRules\": [\n \"redeemRules\"\n ],\n \"rewardConfigs\": {\n \"attribution\": \"attribution\",\n \"code\": \"code\",\n \"value\": \"value\"\n },\n \"rule\": {\n \"condition\": {\n \"op\": \"op\"\n },\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"event\": {\n \"name\": \"name\",\n \"source\": \"source\"\n },\n \"isInternal\": true,\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"loyaltyVersionId\": 1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"results\": [\n {}\n ],\n \"ruleId\": \"ruleId\",\n \"ruleType\": \"ruleType\",\n \"updatedAt\": \"updatedAt\"\n },\n \"startDate\": \"2024-01-15T09:30:00Z\",\n \"subtractBalanceDefinitionId\": \"subtractBalanceDefinitionId\",\n \"subtractBalanceStrategy\": \"subtractBalanceStrategy\",\n \"subtractBalanceValue\": 1,\n \"subtractTotalBalance\": true,\n \"totalAttribution\": 1,\n \"totalRedeem\": 1,\n \"triggerId\": \"triggerId\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1.1,\n \"valueType\": \"valueType\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"66e13a60-2e6c-4f3b-9ff7-fc1cdcc147b8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"950e340e-ab9c-42c4-8c85-9ea1bd43113d","name":"Get voucher for a contact - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/vouchers","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}},"queryParameters":{"contactId":{"equalTo":"1"}}},"response":{"status":200,"body":"{\n \"contactId\": 1000000,\n \"contactRewards\": [\n {\n \"code\": \"code\",\n \"consumedAt\": \"consumedAt\",\n \"createdAt\": \"createdAt\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rewardId\": \"rewardId\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1.1\n }\n ],\n \"count\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"loyaltySubscriptionId\": \"loyaltySubscriptionId\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"950e340e-ab9c-42c4-8c85-9ea1bd43113d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f3e1d26e-fbde-4b7e-afe4-fabb4960ff71","name":"Assign a tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/contacts/{cid}/tiers/{tid}","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"cid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"contactId\": 1,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f3e1d26e-fbde-4b7e-afe4-fabb4960ff71","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e6fc762d-7440-4454-beb1-ff71f4a9080e","name":"List tier groups - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"e6fc762d-7440-4454-beb1-ff71f4a9080e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d33f2b3b-2dd3-4911-8200-e4b4ef965933","name":"Create a tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"d33f2b3b-2dd3-4911-8200-e4b4ef965933","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"562fecbb-8cc8-46ae-b519-3fd2825bb107","name":"Get tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"562fecbb-8cc8-46ae-b519-3fd2825bb107","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67f29817-d31a-4186-b787-9277e465e139","name":"Update tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"67f29817-d31a-4186-b787-9277e465e139","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a9e14ece-a957-40e8-b723-4b89904599dd","name":"Delete tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a9e14ece-a957-40e8-b723-4b89904599dd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d2b435bf-764a-46a6-a860-04672e2611c0","name":"Create a tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}/tiers","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"{\n \"accessConditions\": [\n {\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"minimumValue\": 1,\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"imageRef\": \"imageRef\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierId\": \"tierId\",\n \"tierRewards\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"d2b435bf-764a-46a6-a860-04672e2611c0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e335b644-b3a8-4e92-9222-a80f9a8dd3ab","name":"List tiers - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tiers","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"accessConditions\": [\n {}\n ],\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"imageRef\": \"imageRef\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierId\": \"tierId\",\n \"tierRewards\": [\n {}\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"e335b644-b3a8-4e92-9222-a80f9a8dd3ab","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c299567a-50ff-4db3-a919-280c95c9de65","name":"Update tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tiers/{tid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"accessConditions\": [\n {\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"minimumValue\": 1,\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"imageRef\": \"imageRef\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierId\": \"tierId\",\n \"tierRewards\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c299567a-50ff-4db3-a919-280c95c9de65","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"05e6afcc-fb74-4457-a108-1dc6a10a5be7","name":"Delete tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tiers/{tid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"05e6afcc-fb74-4457-a108-1dc6a10a5be7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"cec8c14d-adf6-497f-95ee-c48ab1d6503d","name":"Return all your created email campaigns - default","request":{"urlPathTemplate":"/emailCampaigns","method":"GET"},"response":{"status":200,"body":"{\n \"campaigns\": [\n {\n \"attachmentFile\": \"http://mydomain.com/campaign/attachment/file.pdf\",\n \"abTesting\": true,\n \"id\": 12,\n \"name\": \"EN - Sales Summer 2017\",\n \"previewText\": \"Don't miss the sale!\",\n \"scheduledAt\": \"2017-06-01T12:30:00Z\",\n \"sendAtBestTime\": true,\n \"splitRule\": 25,\n \"status\": \"sent\",\n \"subject\": \"20% OFF for 2017 Summer Sales\",\n \"subjectA\": \"Discover the New Collection!\",\n \"subjectB\": \"Want to discover the New Collection?\",\n \"type\": \"classic\",\n \"winnerCriteria\": \"open\",\n \"winnerDelay\": 50,\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"footer\": \"[DEFAULT_FOOTER]\",\n \"header\": \"[DEFAULT_HEADER]\",\n \"htmlContent\": \"This is my HTML Content\",\n \"inlineImageActivation\": true,\n \"mirrorActive\": true,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"recurring\": false,\n \"replyTo\": \"replyto@domain.com\",\n \"returnBounce\": 5,\n \"sender\": {\n \"email\": \"marketing@mycompany.com\",\n \"id\": 26,\n \"name\": \"Marketing\"\n },\n \"sentDate\": \"2018-12-01T16:30:00Z\",\n \"shareLink\": \"http://example.com/fhsgccc.html?t=9865448900\",\n \"tag\": \"Newsletter\",\n \"tags\": [\n \"tag1\",\n \"tag2\"\n ],\n \"testSent\": true,\n \"toField\": \"{FNAME} {LNAME}\",\n \"utmCampaignValue\": \"myutm\",\n \"utmIDActive\": true,\n \"utmMedium\": \"EMAIL\",\n \"utmSource\": \"Brevo\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 5\n ]\n },\n \"statistics\": {\n \"campaignStats\": [\n {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 5,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n ],\n \"globalStats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"linksStats\": {},\n \"mirrorClick\": 120,\n \"remaining\": 1000,\n \"statsByBrowser\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n },\n \"statsByDevice\": {},\n \"statsByDomain\": {\n \"hotmail.co.uk\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2720,\n \"complaints\": 5,\n \"deferred\": 30,\n \"delivered\": 117056,\n \"estimatedViews\": 560,\n \"hardBounces\": 0,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 117055,\n \"softBounces\": 111,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 1970,\n \"uniqueViews\": 21111,\n \"unsubscriptions\": 105,\n \"viewed\": 35251\n },\n \"yahoo.com\": {\n \"appleMppOpens\": 10,\n \"clickers\": 533,\n \"complaints\": 0,\n \"deferred\": 30,\n \"delivered\": 25596,\n \"estimatedViews\": 560,\n \"hardBounces\": 0,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 25601,\n \"softBounces\": 5,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 298,\n \"uniqueViews\": 3527,\n \"unsubscriptions\": 17,\n \"viewed\": 5255\n }\n }\n }\n },\n {\n \"attachmentFile\": \"http://img.mailinblue.com/{clientID-campaignID}/attachments/{fileName}\",\n \"abTesting\": true,\n \"id\": 22,\n \"name\": \"Weekly - 1\",\n \"previewText\": \"your weekly newsletter!\",\n \"scheduledAt\": \"\",\n \"sendAtBestTime\": true,\n \"splitRule\": 25,\n \"status\": \"draft\",\n \"subject\": \"Week 1 - Newsletter\",\n \"subjectA\": \"Discover the New Collection!\",\n \"subjectB\": \"Want to discover the New Collection?\",\n \"type\": \"classic\",\n \"winnerCriteria\": \"open\",\n \"winnerDelay\": 50,\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"footer\": \"[DEFAULT_FOOTER]\",\n \"header\": \"[DEFAULT_HEADER]\",\n \"htmlContent\": \"This is my HTML Content\",\n \"inlineImageActivation\": true,\n \"mirrorActive\": true,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"recurring\": false,\n \"replyTo\": \"replyto@domain.com\",\n \"returnBounce\": 5,\n \"sender\": {\n \"email\": \"newsletter@mycompany.com\",\n \"id\": 26,\n \"name\": \"Newsletter\"\n },\n \"sentDate\": \"2018-12-01T16:30:00Z\",\n \"shareLink\": \"http://example.com/fhsgccc.html?t=9865448900\",\n \"tag\": \"Newsletter\",\n \"tags\": [\n \"Newsletter\",\n \"Weekly\"\n ],\n \"testSent\": false,\n \"toField\": \"{FNAME} {LNAME}\",\n \"utmCampaignValue\": \"myutm\",\n \"utmIDActive\": true,\n \"utmMedium\": \"EMAIL\",\n \"utmSource\": \"Brevo\",\n \"recipients\": {\n \"exclusionLists\": [\n 45\n ],\n \"lists\": [\n 10\n ]\n },\n \"statistics\": {\n \"campaignStats\": [\n {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 10,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n ],\n \"globalStats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.42,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"linksStats\": {},\n \"mirrorClick\": 120,\n \"remaining\": 1000,\n \"statsByBrowser\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n },\n \"statsByDevice\": {},\n \"statsByDomain\": {\n \"aol\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"gmail\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n }\n }\n }\n ],\n \"count\": 2\n}","headers":{"Content-Type":"application/json"}},"uuid":"cec8c14d-adf6-497f-95ee-c48ab1d6503d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"3d7c577e-d169-438f-b91c-d1f90d441dee","name":"Create an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d7c577e-d169-438f-b91c-d1f90d441dee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b6e00948-fca2-4a11-addd-d16045c94c90","name":"Upload an image to your account's image gallery - default","request":{"urlPathTemplate":"/emailCampaigns/images","method":"POST"},"response":{"status":201,"body":"{\n \"url\": \"https://img.mailinblue.com/100000/images/rnb/original/62casdase8wewq9df1c2f27c.jpeg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"b6e00948-fca2-4a11-addd-d16045c94c90","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"da8f0483-4951-4e2d-a495-15906071e018","name":"Get an email campaign report - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"attachmentFile\": \"http://img.mailinblue.com/{clientID-campaignID}/attachments/{fileName}\",\n \"abTesting\": true,\n \"id\": 22,\n \"name\": \"Weekly - 1\",\n \"previewText\": \"your weekly newsletter\",\n \"scheduledAt\": \"2017-09-22T12:30:00Z\",\n \"sendAtBestTime\": true,\n \"splitRule\": 25,\n \"status\": \"draft\",\n \"subject\": \"Week 1 - Newsletter\",\n \"subjectA\": \"Discover the New Collection!\",\n \"subjectB\": \"Want to discover the New Collection?\",\n \"type\": \"classic\",\n \"winnerCriteria\": \"open\",\n \"winnerDelay\": 50,\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"footer\": \"[DEFAULT_FOOTER]\",\n \"header\": \"[DEFAULT_HEADER]\",\n \"htmlContent\": \"This is my HTML Content\",\n \"inlineImageActivation\": true,\n \"mirrorActive\": true,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"recurring\": false,\n \"replyTo\": \"replyto@domain.com\",\n \"returnBounce\": 5,\n \"sender\": {\n \"email\": \"newsletter@mycompany.com\",\n \"id\": 26,\n \"name\": \"Newsletter\"\n },\n \"sentDate\": \"2018-12-01T16:30:00Z\",\n \"shareLink\": \"http://dhh.brevo.com/fhsgccc.html?t=9865448900\",\n \"tag\": \"Newsletter\",\n \"tags\": [\n \"Newsletter\",\n \"Weekly\"\n ],\n \"testSent\": false,\n \"toField\": \"{FNAME} {LNAME}\",\n \"utmCampaignValue\": \"myutm\",\n \"utmIDActive\": true,\n \"utmMedium\": \"EMAIL\",\n \"utmSource\": \"Brevo\",\n \"recipients\": {\n \"exclusionLists\": [\n 45\n ],\n \"lists\": [\n 22\n ]\n },\n \"statistics\": {\n \"campaignStats\": [\n {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 22,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n ],\n \"globalStats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 24.59,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"linksStats\": {},\n \"mirrorClick\": 120,\n \"remaining\": 1000,\n \"statsByBrowser\": {\n \"internetExplorer\": {\n \"clickers\": 0,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n },\n \"safari\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n },\n \"thunderbird\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n }\n },\n \"statsByDevice\": {\n \"desktop\": {\n \"mac\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 1,\n \"viewed\": 2\n }\n },\n \"mobile\": {\n \"androidMobile\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n },\n \"iPhone\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 2\n }\n },\n \"tablet\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n },\n \"unknown\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n }\n },\n \"statsByDomain\": {\n \"gmail\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"da8f0483-4951-4e2d-a495-15906071e018","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"27d7a953-713c-4dcc-a03d-a5fcd5fbc134","name":"Update an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"27d7a953-713c-4dcc-a03d-a5fcd5fbc134","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"28dbcc0e-eed7-4b02-a7d8-2aab0a25c731","name":"Delete an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}","method":"DELETE","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"28dbcc0e-eed7-4b02-a7d8-2aab0a25c731","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"969348eb-29d3-48ab-82d1-c46a8412178e","name":"Get an A/B test email campaign results - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/abTestCampaignResult","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"clickRate\": \"50%\",\n \"clickedLinks\": {\n \"Version A\": [\n {\n \"clickRate\": \"0%\",\n \"clicksCount\": 0,\n \"link\": \"https://google.com\"\n },\n {\n \"clickRate\": \"0%\",\n \"clicksCount\": 0,\n \"link\": \"https://youtube.com\"\n }\n ],\n \"Version B\": [\n {\n \"clickRate\": \"40%\",\n \"clicksCount\": 2,\n \"link\": \"http://www.github.com\"\n },\n {\n \"clickRate\": \"60%\",\n \"clicksCount\": 3,\n \"link\": \"http://www.stackoverflow.com\"\n }\n ]\n },\n \"openRate\": \"100%\",\n \"statistics\": {\n \"clicks\": {\n \"Version A\": \"0%\",\n \"Version B\": \"50%\"\n },\n \"complaints\": {\n \"Version A\": \"0%\",\n \"Version B\": \"0%\"\n },\n \"hardBounces\": {\n \"Version A\": \"0%\",\n \"Version B\": \"0%\"\n },\n \"openers\": {\n \"Version A\": \"20%\",\n \"Version B\": \"100%\"\n },\n \"softBounces\": {\n \"Version A\": \"0%\",\n \"Version B\": \"0%\"\n },\n \"unsubscribed\": {\n \"Version A\": \"20%\",\n \"Version B\": \"0%\"\n }\n },\n \"winningCriteria\": \"Click\",\n \"winningSubjectLine\": \"Subject Line A\",\n \"winningVersion\": \"B\",\n \"winningVersionRate\": \"0%\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"969348eb-29d3-48ab-82d1-c46a8412178e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"93e3be61-a737-4896-a697-7417b837b571","name":"Export the recipients of an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/exportRecipients","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"93e3be61-a737-4896-a697-7417b837b571","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b0b17959-d743-449c-8bdd-ab28a42870cc","name":"Send an email campaign immediately, based on campaignId - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sendNow","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b0b17959-d743-449c-8bdd-ab28a42870cc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"57eba48c-9a52-4e90-a12c-fa89a469f035","name":"Send the report of a campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sendReport","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"57eba48c-9a52-4e90-a12c-fa89a469f035","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fc668b8b-10da-4f83-ae38-5004f0a64ae7","name":"Send an email campaign to your test list - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sendTest","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fc668b8b-10da-4f83-ae38-5004f0a64ae7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6bc6114e-fc20-4aa2-ba22-7e7fe7f95244","name":"Get a shared template url - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sharedUrl","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"sharedUrl\": \"https://my.brevo.com/pt2YU7R5W_guXlowgumy_VX4pFsKu._zd0Gjj96x1_GMmzc1Qps5ZIpj6nx-\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"6bc6114e-fc20-4aa2-ba22-7e7fe7f95244","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8d661344-163b-4798-a243-ba10bd08cbe9","name":"Update an email campaign status - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/status","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8d661344-163b-4798-a243-ba10bd08cbe9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ffedd57d-0198-49a4-9112-ce7ae8751ebc","name":"Returns the information for all your created SMS campaigns - default","request":{"urlPathTemplate":"/smsCampaigns","method":"GET"},"response":{"status":200,"body":"{\n \"campaigns\": [\n {\n \"content\": \"Visit our Store and get some discount !\",\n \"createdAt\": \"2017-06-01T12:30:00Z\",\n \"id\": 2,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"PROMO CODE\",\n \"scheduledAt\": \"2017-06-01T12:30:00Z\",\n \"sender\": \"MyCompany\",\n \"status\": \"sent\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 21\n ]\n },\n \"statistics\": {\n \"answered\": 2,\n \"delivered\": 2987,\n \"hardBounces\": 1,\n \"processing\": 0,\n \"sent\": 3000,\n \"softBounces\": 3,\n \"unsubscriptions\": 3\n }\n },\n {\n \"content\": \"Summer Sale is starting tomorrow. Get extra 10% with this code:SUM17\",\n \"createdAt\": \"2017-06-01T12:30:00Z\",\n \"id\": 10,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"SUMMER SALE\",\n \"scheduledAt\": \"2017-08-04T12:30:00Z\",\n \"sender\": \"MyCompany\",\n \"status\": \"draft\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 21\n ]\n },\n \"statistics\": {\n \"answered\": 2,\n \"delivered\": 2987,\n \"hardBounces\": 1,\n \"processing\": 0,\n \"sent\": 3000,\n \"softBounces\": 3,\n \"unsubscriptions\": 3\n }\n }\n ],\n \"count\": 12\n}","headers":{"Content-Type":"application/json"}},"uuid":"ffedd57d-0198-49a4-9112-ce7ae8751ebc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"ff5b73cc-83d1-4d1c-9038-f01bc11a604e","name":"Creates an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"ff5b73cc-83d1-4d1c-9038-f01bc11a604e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9ff5c02a-8b74-486b-aca9-7ac003b1838c","name":"Get an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"content\": \"Visit our Store and get some discount !\",\n \"createdAt\": \"2017-06-01T12:30:00Z\",\n \"id\": 2,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"PROMO CODE\",\n \"scheduledAt\": \"2017-06-01T12:30:00Z\",\n \"sender\": \"MyCompany\",\n \"status\": \"sent\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 21\n ]\n },\n \"statistics\": {\n \"answered\": 2,\n \"delivered\": 2987,\n \"hardBounces\": 1,\n \"processing\": 0,\n \"sent\": 3000,\n \"softBounces\": 3,\n \"unsubscriptions\": 3\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"9ff5c02a-8b74-486b-aca9-7ac003b1838c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"828e0b76-55ec-4b20-83fd-ff0d9c6a807f","name":"Update an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"828e0b76-55ec-4b20-83fd-ff0d9c6a807f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0938f276-c211-4150-91ac-9ea5e3ddf7fe","name":"Delete an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}","method":"DELETE","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"0938f276-c211-4150-91ac-9ea5e3ddf7fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"daaeea82-c583-43fb-b4c7-a6bbc940fc47","name":"Export an SMS campaign's recipients - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/exportRecipients","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"daaeea82-c583-43fb-b4c7-a6bbc940fc47","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b7dd5175-f7a0-4b5e-9224-203d4fae1c4d","name":"Send your SMS campaign immediately - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/sendNow","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b7dd5175-f7a0-4b5e-9224-203d4fae1c4d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"64e8bd39-5b33-477a-ae7f-0501cb5a6140","name":"Send an SMS campaign's report - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/sendReport","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"64e8bd39-5b33-477a-ae7f-0501cb5a6140","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"734d1bda-9010-4188-9a00-57d5b302eee4","name":"Send a test SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/sendTest","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"734d1bda-9010-4188-9a00-57d5b302eee4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"694adffd-8af9-45be-8225-5e44e17d7454","name":"Update a campaign's status - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/status","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"694adffd-8af9-45be-8225-5e44e17d7454","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"03183785-7a99-4733-896c-eb489047065c","name":"Return all your created WhatsApp campaigns - default","request":{"urlPathTemplate":"/whatsappCampaigns","method":"GET"},"response":{"status":200,"body":"{\n \"campaigns\": [\n {\n \"campaignName\": \"campaign_22\",\n \"campaignStatus\": \"sent\",\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"errorReason\": \"NONE\",\n \"id\": 1672035851100690,\n \"invalidatedContacts\": 0,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"readPercentage\": 28.57,\n \"scheduledAt\": \"2022-12-27T09:50:00Z\",\n \"stats\": {\n \"delivered\": 3,\n \"notSent\": 4,\n \"read\": 2,\n \"sent\": 3,\n \"unsubscribe\": 0\n },\n \"templateId\": \"templateId\"\n }\n ],\n \"count\": 23\n}","headers":{"Content-Type":"application/json"}},"uuid":"03183785-7a99-4733-896c-eb489047065c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5fc3f144-a51f-454f-a5d0-019b38ba3c15","name":"Create and Send a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"5fc3f144-a51f-454f-a5d0-019b38ba3c15","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"cc80c9bc-ff82-4140-9b7a-dfb84c8e99a7","name":"Get your WhatsApp API account information - default","request":{"urlPathTemplate":"/whatsappCampaigns/config","method":"GET"},"response":{"status":200,"body":"{\n \"businessStatus\": \"verified\",\n \"phoneNumberNameStatus\": \"APPROVED\",\n \"phoneNumberQuality\": \"GREEN\",\n \"sendingLimit\": \"TIER_1K\",\n \"whatsappBusinessAccountId\": \"whatsappBusinessAccountId\",\n \"whatsappBusinessAccountStatus\": \"APPROVED\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"cc80c9bc-ff82-4140-9b7a-dfb84c8e99a7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5217f5cb-e270-45d2-bf41-0aa3651c5839","name":"Create a WhatsApp template - default","request":{"urlPathTemplate":"/whatsappCampaigns/template","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"5217f5cb-e270-45d2-bf41-0aa3651c5839","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e541402c-10e0-447d-ab89-e9102a312296","name":"Return all your created WhatsApp templates - default","request":{"urlPathTemplate":"/whatsappCampaigns/template-list","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"templates\": [\n {\n \"category\": \"MARKETING\",\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"errorReason\": \"NONE\",\n \"id\": 235,\n \"language\": \"en\",\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"campaign_22\",\n \"status\": \"approved\"\n },\n {\n \"category\": \"MARKETING\",\n \"createdAt\": \"2017-0\",\n \"errorReason\": \"NONE\",\n \"id\": 124,\n \"language\": \"\",\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"test-template\",\n \"status\": \"draft\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"e541402c-10e0-447d-ab89-e9102a312296","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c47467e5-3355-486f-b83b-ecf963b249b4","name":"Send your WhatsApp template for approval - default","request":{"urlPathTemplate":"/whatsappCampaigns/template/approval/{templateId}","method":"POST","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c47467e5-3355-486f-b83b-ecf963b249b4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6d437255-9beb-48aa-9616-0b438eb437f6","name":"Get a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns/{campaignId}","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"campaignName\": \"Test WhatsApp Campaign\",\n \"campaignStatus\": \"sent\",\n \"createdAt\": \"2022-12-26T06:50:00Z\",\n \"id\": 1672035851100690,\n \"modifiedAt\": \"2022-12-26T08:50:00Z\",\n \"scheduledAt\": \"2022-12-27T09:50:00Z\",\n \"senderNumber\": \"senderNumber\",\n \"stats\": {\n \"delivered\": 3,\n \"notSent\": 4,\n \"read\": 2,\n \"sent\": 3,\n \"unsubscribe\": 0\n },\n \"template\": {\n \"body_variables\": [\n {\n \"datatype\": \"text\",\n \"default\": \"INVALID_HEADER\",\n \"name\": \"FIRSTNAME\"\n }\n ],\n \"button_type\": \"CALL_TO_ACTION\",\n \"category\": \"MARKETING\",\n \"components\": [\n {\n \"text\": \"making it look like readable English.\",\n \"type\": \"BODY\"\n },\n {\n \"text\": \"Life is a long lesson in humility\",\n \"type\": \"BUTTONS\"\n }\n ],\n \"contains_button\": true,\n \"display_header\": false,\n \"header_type\": \"text\",\n \"header_variables\": [\n {\n \"datatype\": \"text\",\n \"default\": \"INVALID HEADER\",\n \"name\": \"FIRSTNAME\"\n }\n ],\n \"hide_footer\": true,\n \"language\": \"en\",\n \"name\": \"official_campaign8\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"6d437255-9beb-48aa-9616-0b438eb437f6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eb75a9a4-36c5-4126-9a14-85044f19f2c1","name":"Update a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns/{campaignId}","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"eb75a9a4-36c5-4126-9a14-85044f19f2c1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b4ef121d-89fa-4fb6-984d-39467bf9fd6b","name":"Delete a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns/{campaignId}","method":"DELETE","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b4ef121d-89fa-4fb6-984d-39467bf9fd6b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eb31fc6b-22fd-431f-ba7e-59e0d7773487","name":"Get all Companies - default","request":{"urlPathTemplate":"/companies","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"attributes\": {\n \"created_at\": \"2022-01-13T19:04:24.376+05:30\",\n \"domain\": \"xyz\",\n \"last_updated_at\": \"2022-04-01T18:47:48.283+05:30\",\n \"name\": \"text\",\n \"number_of_contacts\": 0,\n \"owner\": \"62260474111b1101704a9d85\",\n \"owner_assign_date\": \"2022-04-01T18:21:13.379+05:30\",\n \"phone_number\": 8171844192,\n \"revenue\": 10\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ],\n \"linkedDealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ]\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"eb31fc6b-22fd-431f-ba7e-59e0d7773487","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e17f5536-5a6b-4a26-8102-3170dd47ae3d","name":"Create a company - default","request":{"urlPathTemplate":"/companies","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad06\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e17f5536-5a6b-4a26-8102-3170dd47ae3d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f390d3a7-6a70-4b45-ad33-f4f3d3000538","name":"Import companies(creation and updation) - default","request":{"urlPathTemplate":"/companies/import","method":"POST"},"response":{"status":200,"body":"{\n \"processId\": 50\n}","headers":{"Content-Type":"application/json"}},"uuid":"f390d3a7-6a70-4b45-ad33-f4f3d3000538","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"708feaed-27c0-429f-8086-5e7c5e4ecd8d","name":"Link and Unlink company with contact and deal - default","request":{"urlPathTemplate":"/companies/link-unlink/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"708feaed-27c0-429f-8086-5e7c5e4ecd8d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"00aba53e-3870-4157-ace9-c2d252198e11","name":"Get a company - default","request":{"urlPathTemplate":"/companies/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"attributes\": {\n \"created_at\": \"2022-01-13T19:04:24.376+05:30\",\n \"domain\": \"xyz\",\n \"last_updated_at\": \"2022-04-01T18:47:48.283+05:30\",\n \"name\": \"text\",\n \"number_of_contacts\": 0,\n \"owner\": \"62260474111b1101704a9d85\",\n \"owner_assign_date\": \"2022-04-01T18:21:13.379+05:30\",\n \"phone_number\": 8171844192,\n \"revenue\": 10\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ],\n \"linkedDealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"00aba53e-3870-4157-ace9-c2d252198e11","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ed72bcbe-33c2-48e2-93e4-756a46e8fd90","name":"Delete a company - default","request":{"urlPathTemplate":"/companies/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ed72bcbe-33c2-48e2-93e4-756a46e8fd90","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d37f940-80db-41f6-9f83-1f3a2c69804b","name":"Update a company - default","request":{"urlPathTemplate":"/companies/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"attributes\": {\n \"created_at\": \"2022-01-13T19:04:24.376+05:30\",\n \"domain\": \"xyz\",\n \"last_updated_at\": \"2022-04-01T18:47:48.283+05:30\",\n \"name\": \"text\",\n \"number_of_contacts\": 0,\n \"owner\": \"62260474111b1101704a9d85\",\n \"owner_assign_date\": \"2022-04-01T18:21:13.379+05:30\",\n \"phone_number\": 8171844192,\n \"revenue\": 10\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ],\n \"linkedDealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d37f940-80db-41f6-9f83-1f3a2c69804b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1a24ce32-7c2c-41a5-80a9-1681d05767ad","name":"Create a company/deal attribute - default","request":{"urlPathTemplate":"/crm/attributes","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad07\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1a24ce32-7c2c-41a5-80a9-1681d05767ad","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"360c88d6-c7bb-4c00-b1ab-146f803e9eff","name":"Delete an attribute - default","request":{"urlPathTemplate":"/crm/attributes/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"360c88d6-c7bb-4c00-b1ab-146f803e9eff","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a9790cec-51da-4b91-ae52-a3b58fa8c717","name":"Update an attribute - default","request":{"urlPathTemplate":"/crm/attributes/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a9790cec-51da-4b91-ae52-a3b58fa8c717","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"696b098d-c426-490d-993d-82b72a9a6eec","name":"Get company attributes - default","request":{"urlPathTemplate":"/crm/attributes/companies","method":"GET"},"response":{"status":200,"body":"[\n {\n \"attributeOptions\": [\n {\n \"key\": \"custom key\",\n \"value\": \"custom label\"\n }\n ],\n \"attributeTypeName\": \"text\",\n \"internalName\": \"name\",\n \"isRequired\": true,\n \"label\": \"Company Name\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"696b098d-c426-490d-993d-82b72a9a6eec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"3db982e0-00b7-41af-bc9d-fe3f54d90a12","name":"Get deal attributes - default","request":{"urlPathTemplate":"/crm/attributes/deals","method":"GET"},"response":{"status":200,"body":"[\n {\n \"attributeOptions\": [\n {\n \"key\": \"custom key\",\n \"value\": \"custom label\"\n }\n ],\n \"attributeTypeName\": \"text\",\n \"internalName\": \"deal_name\",\n \"isRequired\": true,\n \"label\": \"Deal Name\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"3db982e0-00b7-41af-bc9d-fe3f54d90a12","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4ee2c155-e8d9-4aee-b095-699a2c9a6263","name":"Get all deals - default","request":{"urlPathTemplate":"/crm/deals","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"attributes\": {\n \"amount\": 12,\n \"created_at\": \"2022-05-30T07:42:05.671Z\",\n \"deal_name\": \"testname\",\n \"deal_owner\": \"6093d2425a9b436e9519d034\",\n \"deal_stage\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"last_activity_date\": \"2022-06-06T08:38:36.000Z\",\n \"last_updated_date\": \"2022-06-06T08:38:36.761Z\",\n \"number_of_activities\": 0,\n \"number_of_contacts\": 1,\n \"pipeline\": \"6093d296ad1e9c5cf2140a58\",\n \"stage_updated_at\": \"2022-05-30T07:42:05.671Z\"\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedCompaniesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ]\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"4ee2c155-e8d9-4aee-b095-699a2c9a6263","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"21216821-874f-4e2a-a690-4b805b03c721","name":"Create a deal - default","request":{"urlPathTemplate":"/crm/deals","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad06\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"21216821-874f-4e2a-a690-4b805b03c721","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ce9e7723-550c-4f51-af88-6cde553f45b7","name":"Import deals(creation and updation) - default","request":{"urlPathTemplate":"/crm/deals/import","method":"POST"},"response":{"status":200,"body":"{\n \"processId\": 50\n}","headers":{"Content-Type":"application/json"}},"uuid":"ce9e7723-550c-4f51-af88-6cde553f45b7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f89fa5e6-0434-46e0-8c77-535bea98fc1a","name":"Link and Unlink a deal with contacts and companies - default","request":{"urlPathTemplate":"/crm/deals/link-unlink/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f89fa5e6-0434-46e0-8c77-535bea98fc1a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a3513f5b-5df8-443d-aa67-5efd91e58f3d","name":"Get a deal - default","request":{"urlPathTemplate":"/crm/deals/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"attributes\": {\n \"amount\": 12,\n \"created_at\": \"2022-05-30T07:42:05.671Z\",\n \"deal_name\": \"testname\",\n \"deal_owner\": \"6093d2425a9b436e9519d034\",\n \"deal_stage\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"last_activity_date\": \"2022-06-06T08:38:36.000Z\",\n \"last_updated_date\": \"2022-06-06T08:38:36.761Z\",\n \"next_activity_date\": {\n \"key\": \"value\"\n },\n \"number_of_activities\": 0,\n \"number_of_contacts\": 1,\n \"pipeline\": \"6093d296ad1e9c5cf2140a58\",\n \"stage_updated_at\": \"2022-05-30T07:42:05.671Z\"\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedCompaniesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a3513f5b-5df8-443d-aa67-5efd91e58f3d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"54ba1660-4170-41b9-86d2-963468e28812","name":"Delete a deal - default","request":{"urlPathTemplate":"/crm/deals/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"54ba1660-4170-41b9-86d2-963468e28812","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e555066b-bfb4-4582-9f37-6eec50af9fe4","name":"Update a deal - default","request":{"urlPathTemplate":"/crm/deals/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e555066b-bfb4-4582-9f37-6eec50af9fe4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"00d065e6-8a4f-4ac9-a849-298a81551e9c","name":"Get pipeline stages - default","request":{"urlPathTemplate":"/crm/pipeline/details","method":"GET"},"response":{"status":200,"body":"{\n \"pipeline\": \"5ea675e3da0dd085acaea610\",\n \"pipeline_name\": \"Sales Pipeline\",\n \"stages\": [\n {\n \"id\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"name\": \"New\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"00d065e6-8a4f-4ac9-a849-298a81551e9c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e75093b9-5f73-46e0-a2af-1f7c47922829","name":"Get all pipelines - default","request":{"urlPathTemplate":"/crm/pipeline/details/all","method":"GET"},"response":{"status":200,"body":"[\n {\n \"pipeline\": \"5ea675e3da0dd085acaea610\",\n \"pipeline_name\": \"Sales Pipeline\",\n \"stages\": [\n {\n \"id\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"name\": \"New\"\n }\n ]\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"e75093b9-5f73-46e0-a2af-1f7c47922829","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2882799f-edf8-4d3b-826d-3692f300d025","name":"Get a pipeline - default","request":{"urlPathTemplate":"/crm/pipeline/details/{pipelineID}","method":"GET","pathParameters":{"pipelineID":{"equalTo":"pipelineID"}}},"response":{"status":200,"body":"[\n {\n \"pipeline\": \"5ea675e3da0dd085acaea610\",\n \"pipeline_name\": \"Sales Pipeline\",\n \"stages\": [\n {\n \"id\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"name\": \"New\"\n }\n ]\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"2882799f-edf8-4d3b-826d-3692f300d025","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2e96e9dc-f52d-4354-a185-de3257903a02","name":"Get all files - default","request":{"urlPathTemplate":"/crm/files","method":"GET"},"response":{"status":200,"body":"[\n {\n \"authorId\": \"61a5ce58y5d4795761045991\",\n \"companyId\": \"61a5ce58c5d4795761045991\",\n \"contactId\": 1,\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealId\": \"61a5ce58c5d4795761045991\",\n \"name\": \"example.png\",\n \"size\": 10\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"2e96e9dc-f52d-4354-a185-de3257903a02","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"54153a26-e96d-4b54-acab-08a1b6bb6027","name":"Upload a file - default","request":{"urlPathTemplate":"/crm/files","method":"POST"},"response":{"status":201,"body":"{\n \"authorId\": \"61a5ce58y5d4795761045991\",\n \"companyId\": \"61a5ce58c5d4795761045991\",\n \"contactId\": 1,\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealId\": \"61a5ce58c5d4795761045991\",\n \"name\": \"example.png\",\n \"size\": 10\n}","headers":{"Content-Type":"application/json"}},"uuid":"54153a26-e96d-4b54-acab-08a1b6bb6027","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fea850a9-ab2c-4fee-89b8-e564df22e53a","name":"Download a file - default","request":{"urlPathTemplate":"/crm/files/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"fileUrl\": \"https://storage.googleapis.com/brevo-app-crm.......-sample.pdf\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"fea850a9-ab2c-4fee-89b8-e564df22e53a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"38b72322-9ea0-47f2-b639-7d466c243b82","name":"Delete a file - default","request":{"urlPathTemplate":"/crm/files/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"38b72322-9ea0-47f2-b639-7d466c243b82","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1ee1505b-b76c-47f3-addc-8d237075f2a3","name":"Get file details - default","request":{"urlPathTemplate":"/crm/files/{id}/data","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"authorId\": \"61a5ce58y5d4795761045991\",\n \"companyId\": \"61a5ce58c5d4795761045991\",\n \"contactId\": 1,\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealId\": \"61a5ce58c5d4795761045991\",\n \"name\": \"example.png\",\n \"size\": 10\n}","headers":{"Content-Type":"application/json"}},"uuid":"1ee1505b-b76c-47f3-addc-8d237075f2a3","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"608a87de-9e4a-45e5-bb3a-e0683eb220b8","name":"Get all notes - default","request":{"urlPathTemplate":"/crm/notes","method":"GET"},"response":{"status":200,"body":"[\n {\n \"authorId\": {\n \"email\": \"johndoe@example.com\",\n \"id\": \"61a5ce58y5d4795761045991\",\n \"locale\": \"en_GB\",\n \"name\": {\n \"fullName\": \"John Doe\"\n },\n \"timezone\": \"Asia/Kolkata\"\n },\n \"contactIds\": [\n 247,\n 1,\n 2\n ],\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad09\",\n \"text\": \"In communication with client_dev for resolution of queries.\",\n \"updatedAt\": \"2017-05-01T17:05:03Z\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"608a87de-9e4a-45e5-bb3a-e0683eb220b8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"0ceb328a-0b27-4d1d-8ba3-3abc8979d485","name":"Create a note - default","request":{"urlPathTemplate":"/crm/notes","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad09\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"0ceb328a-0b27-4d1d-8ba3-3abc8979d485","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f9cf8ca7-3372-4b74-854e-93a3d45c5d56","name":"Get a note - default","request":{"urlPathTemplate":"/crm/notes/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"authorId\": {\n \"email\": \"johndoe@example.com\",\n \"id\": \"61a5ce58y5d4795761045991\",\n \"locale\": \"en_GB\",\n \"name\": {\n \"fullName\": \"John Doe\"\n },\n \"timezone\": \"Asia/Kolkata\"\n },\n \"contactIds\": [\n 247,\n 1,\n 2\n ],\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad09\",\n \"text\": \"In communication with client_dev for resolution of queries.\",\n \"updatedAt\": \"2017-05-01T17:05:03Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f9cf8ca7-3372-4b74-854e-93a3d45c5d56","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b382d16e-0455-423c-9dd1-42efa255a495","name":"Delete a note - default","request":{"urlPathTemplate":"/crm/notes/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b382d16e-0455-423c-9dd1-42efa255a495","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"458a7a9b-298d-44e2-a117-63db0c9047f0","name":"Update a note - default","request":{"urlPathTemplate":"/crm/notes/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"458a7a9b-298d-44e2-a117-63db0c9047f0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ce9a81b3-1605-4c76-bf79-fc52ff6a2653","name":"Get all tasks - default","request":{"urlPathTemplate":"/crm/tasks","method":"GET","queryParameters":{"sortBy":{"equalTo":"name"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"companiesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"contactsIds\": [\n 1,\n 2,\n 3\n ],\n \"dealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad06\",\n \"name\": \"Task: Connect with client_dev\",\n \"taskTypeId\": \"61a5cd07ca1347c82306ad09\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ce9a81b3-1605-4c76-bf79-fc52ff6a2653","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"60ee1139-00c5-4746-b240-523605d43bb4","name":"Create a task - default","request":{"urlPathTemplate":"/crm/tasks","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad06\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"60ee1139-00c5-4746-b240-523605d43bb4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"909b9f4c-1f5b-4271-82fe-a4e4847db6c7","name":"Get a task - default","request":{"urlPathTemplate":"/crm/tasks/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"companiesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"contactsIds\": [\n 1,\n 2,\n 3\n ],\n \"dealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad06\",\n \"name\": \"Task: Connect with client_dev\",\n \"taskTypeId\": \"61a5cd07ca1347c82306ad09\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"909b9f4c-1f5b-4271-82fe-a4e4847db6c7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"040ca6a6-b7b7-4cfd-95b2-a493ccc1691e","name":"Delete a task - default","request":{"urlPathTemplate":"/crm/tasks/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"040ca6a6-b7b7-4cfd-95b2-a493ccc1691e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"90199d04-c868-46bf-8e40-5e330c257e75","name":"Update a task - default","request":{"urlPathTemplate":"/crm/tasks/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"90199d04-c868-46bf-8e40-5e330c257e75","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"667b0721-7004-49d8-9017-b6d086394c2f","name":"Get all task types - default","request":{"urlPathTemplate":"/crm/tasktypes","method":"GET"},"response":{"status":200,"body":"{\n \"id\": \"61a88a2eb7a574180261234\",\n \"title\": \"Email\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"667b0721-7004-49d8-9017-b6d086394c2f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"22a7a09a-6fad-41dd-aed4-b8806c57a34a","name":"Send a WhatsApp message - default","request":{"urlPathTemplate":"/whatsapp/sendMessage","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"22a7a09a-6fad-41dd-aed4-b8806c57a34a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fab3ac15-a813-4c2f-9673-e64845544c00","name":"Get all your WhatsApp activity (unaggregated events) - default","request":{"urlPathTemplate":"/whatsapp/statistics/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"body\": \"Hi! I am a reply\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"sent\",\n \"mediaUrl\": \"https://example.com/media.png\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"senderNumber\": \"senderNumber\"\n },\n {\n \"body\": \"Hi! I am a reply\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"error\",\n \"mediaUrl\": \"https://example.com/media.png\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"error reason\",\n \"senderNumber\": \"senderNumber\"\n },\n {\n \"body\": \"Hi! I am a reply\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"soft-bounce\",\n \"mediaUrl\": \"https://example.com/media.png\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"invalid whatsapp contact\",\n \"senderNumber\": \"senderNumber\"\n },\n {\n \"body\": \"body only in case of text reply & url will be empty\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"reply\",\n \"mediaUrl\": \"media url only in case media reply & body will be empty\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"senderNumber\": \"senderNumber\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fab3ac15-a813-4c2f-9673-e64845544c00","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"28f43c06-69ca-463d-ad60-4a71c61a0440","name":"Get the list of blocked or unsubscribed transactional contacts - default","request":{"urlPathTemplate":"/smtp/blockedContacts","method":"GET"},"response":{"status":200,"body":"{\n \"contacts\": [\n {\n \"blockedAt\": \"2017-05-01T12:30:00Z\",\n \"email\": \"abc@xyz.com\",\n \"reason\": {\n \"code\": \"adminBlocked\",\n \"message\": \"Admin blocked\"\n },\n \"senderEmail\": \"ez312@gmal.com\"\n }\n ],\n \"count\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"28f43c06-69ca-463d-ad60-4a71c61a0440","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e81c8495-0ef3-44b1-a9ce-45cc2bef7798","name":"Unblock or resubscribe a transactional contact - default","request":{"urlPathTemplate":"/smtp/blockedContacts/{email}","method":"DELETE","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e81c8495-0ef3-44b1-a9ce-45cc2bef7798","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0aab435d-618c-452b-8545-7c35e9088c78","name":"Get the list of blocked domains - default","request":{"urlPathTemplate":"/smtp/blockedDomains","method":"GET"},"response":{"status":200,"body":"{\n \"domains\": [\n \"example.com\",\n \"testdomain.com\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"0aab435d-618c-452b-8545-7c35e9088c78","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"350fd1cc-de1c-4197-ae49-46ce6a1d6c03","name":"Add a new domain to the list of blocked domains - default","request":{"urlPathTemplate":"/smtp/blockedDomains","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"350fd1cc-de1c-4197-ae49-46ce6a1d6c03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f5e28407-a9c3-4231-b722-a6b8bbd8af4a","name":"Unblock an existing domain from the list of blocked domains - default","request":{"urlPathTemplate":"/smtp/blockedDomains/{domain}","method":"DELETE","pathParameters":{"domain":{"equalTo":"domain"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f5e28407-a9c3-4231-b722-a6b8bbd8af4a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d0e027cd-c123-40e7-9aad-30cdce7cf01d","name":"Delete hardbounces - default","request":{"urlPathTemplate":"/smtp/deleteHardbounces","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d0e027cd-c123-40e7-9aad-30cdce7cf01d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4682dc2f-8d22-401b-bb70-9d7939f0b7f7","name":"Send a transactional email - default","request":{"urlPathTemplate":"/smtp/email","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": \"<201798300811.5787683@relay.domain.com>\",\n \"messageIds\": [\n \"messageIds\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"4682dc2f-8d22-401b-bb70-9d7939f0b7f7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5b6bfccd-a5f9-44e8-ab53-d5429f8f9e49","name":"Delete scheduled emails by batchId or messageId - default","request":{"urlPathTemplate":"/smtp/email/{identifier}","method":"DELETE","pathParameters":{"identifier":{"equalTo":"4320f270-a4e3-4a2e-b591-edfe30a5e627"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"5b6bfccd-a5f9-44e8-ab53-d5429f8f9e49","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7b3f5d29-5b44-4d25-ba1b-9b35d7e1bb44","name":"Fetch scheduled emails by batchId or messageId - default","request":{"urlPathTemplate":"/smtp/emailStatus/{identifier}","method":"GET","pathParameters":{"identifier":{"equalTo":"4320f270-a4e3-4a2e-b591-edfe30a5e627"}},"queryParameters":{"startDate":{"equalTo":"2022-02-02"},"endDate":{"equalTo":"2022-03-02"}}},"response":{"status":200,"body":"{\n \"batches\": [\n {\n \"createdAt\": \"2022-02-26T11:36:43Z\",\n \"scheduledAt\": \"2022-02-28T11:36:43Z\",\n \"status\": \"queued\"\n },\n {\n \"createdAt\": \"2022-02-24T11:36:43Z\",\n \"scheduledAt\": \"2022-02-25T11:36:43Z\",\n \"status\": \"processed\"\n },\n {\n \"createdAt\": \"2022-02-25T11:36:43Z\",\n \"scheduledAt\": \"2022-02-26T11:36:43Z\",\n \"status\": \"inProgress\"\n }\n ],\n \"count\": 3\n}","headers":{"Content-Type":"application/json"}},"uuid":"7b3f5d29-5b44-4d25-ba1b-9b35d7e1bb44","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"59d3278a-2ea0-47c9-9d55-a4046d1b1377","name":"Get the list of transactional emails on the basis of allowed filters - default","request":{"urlPathTemplate":"/smtp/emails","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 120,\n \"transactionalEmails\": [\n {\n \"date\": \"2019-05-25T11:53:26Z\",\n \"email\": \"abc@xyz.com\",\n \"from\": \"diana.doe@example.com\",\n \"messageId\": \"<201798300811.5787683@relay.domain.com>\",\n \"subject\": \"summer camp\",\n \"tags\": [\n \"tag1\"\n ],\n \"templateId\": 15,\n \"uuid\": \"5a78c-209ok98262910-std2341\"\n },\n {\n \"date\": \"2019-05-25T07:28:11Z\",\n \"email\": \"test@test.com\",\n \"from\": \"diana.doe@example.com\",\n \"messageId\": \"<201798300811.5700093@relay.domain.com>\",\n \"subject\": \"details verification\",\n \"tags\": [\n \"tag1\"\n ],\n \"templateId\": 15,\n \"uuid\": \"5a78c-209ok98262910-s99a341\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"59d3278a-2ea0-47c9-9d55-a4046d1b1377","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"242bc913-9644-453e-a76b-b6898985c451","name":"Get the personalized content of a sent transactional email - default","request":{"urlPathTemplate":"/smtp/emails/{uuid}","method":"GET","pathParameters":{"uuid":{"equalTo":"uuid"}}},"response":{"status":200,"body":"{\n \"attachmentCount\": 2,\n \"body\": \" Greetings from the team
This is the actual html content sent
\",\n \"date\": \"2016-02-25T11:53:26Z\",\n \"email\": \"abc@example.com\",\n \"events\": [\n {\n \"name\": \"sent\",\n \"time\": \"2016-02-25T11:53:26Z\"\n },\n {\n \"name\": \"delivered\",\n \"time\": \"2016-02-25T11:55:26Z\"\n },\n {\n \"name\": \"opened\",\n \"time\": \"2016-02-26T09:53:26Z\"\n }\n ],\n \"subject\": \"Summer Camps\",\n \"templateId\": 12\n}","headers":{"Content-Type":"application/json"}},"uuid":"242bc913-9644-453e-a76b-b6898985c451","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1060a95a-b193-4fcb-a2c0-82a02a746067","name":"Delete an SMTP transactional log - default","request":{"urlPathTemplate":"/smtp/log/{identifier}","method":"DELETE","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1060a95a-b193-4fcb-a2c0-82a02a746067","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4506e73c-7b47-483f-9ffc-09cb13f3d99a","name":"Get your transactional email activity aggregated over a period of time - default","request":{"urlPathTemplate":"/smtp/statistics/aggregatedReport","method":"GET"},"response":{"status":200,"body":"{\n \"blocked\": 2,\n \"clicks\": 9987,\n \"delivered\": 18996,\n \"hardBounces\": 234,\n \"invalid\": 0,\n \"opens\": 17654,\n \"range\": \"2016-09-08|2017-04-28\",\n \"requests\": 19887,\n \"softBounces\": 1533,\n \"spamReports\": 1,\n \"uniqueClicks\": 8766,\n \"uniqueOpens\": 13688,\n \"unsubscribed\": 2\n}","headers":{"Content-Type":"application/json"}},"uuid":"4506e73c-7b47-483f-9ffc-09cb13f3d99a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a81e1c33-f793-49d1-adb6-8083ca10de20","name":"Get all your transactional email activity (unaggregated events) - default","request":{"urlPathTemplate":"/smtp/statistics/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"date\": \"2017-03-12T12:30:00Z\",\n \"email\": \"john.smith@example.com\",\n \"event\": \"deferred\",\n \"from\": \"john@example.com\",\n \"ip\": \"165.87.3.15\",\n \"link\": \"https://www.someexamplelink.com\",\n \"messageId\": \"<201798300811.5787683@example.domain.com>\",\n \"reason\": \"Error connection timeout\",\n \"subject\": \"Sib client_dev test\",\n \"tag\": \"OrderConfirmation\",\n \"templateId\": 4\n },\n {\n \"date\": \"2017-03-13T16:30:00Z\",\n \"email\": \"john.smith@example.com\",\n \"event\": \"delivered\",\n \"from\": \"john@example.com\",\n \"ip\": \"165.87.3.15\",\n \"link\": \"https://www.someexamplelink.com\",\n \"messageId\": \"<201798300811.5787683@example.domain.com>\",\n \"reason\": \"Error connection timeout\",\n \"subject\": \"Sib client_dev test\",\n \"tag\": \"OrderConfirmation\",\n \"templateId\": 5\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a81e1c33-f793-49d1-adb6-8083ca10de20","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"0d36a3c1-9ba5-4da3-9f9a-5d81dcb8cbc6","name":"Get your transactional email activity aggregated per day - default","request":{"urlPathTemplate":"/smtp/statistics/reports","method":"GET"},"response":{"status":200,"body":"{\n \"reports\": [\n {\n \"blocked\": 519,\n \"clicks\": 1026,\n \"date\": \"2017-04-30\",\n \"delivered\": 10103,\n \"hardBounces\": 21,\n \"invalid\": 1,\n \"opens\": 5091,\n \"requests\": 10756,\n \"softBounces\": 137,\n \"spamReports\": 0,\n \"uniqueClicks\": 720,\n \"uniqueOpens\": 2318,\n \"unsubscribed\": 0\n },\n {\n \"blocked\": 920,\n \"clicks\": 1514,\n \"date\": \"2017-05-01\",\n \"delivered\": 17499,\n \"hardBounces\": 34,\n \"invalid\": 2,\n \"opens\": 10089,\n \"requests\": 18812,\n \"softBounces\": 254,\n \"spamReports\": 0,\n \"uniqueClicks\": 1090,\n \"uniqueOpens\": 4393,\n \"unsubscribed\": 3\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"0d36a3c1-9ba5-4da3-9f9a-5d81dcb8cbc6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"81e1ac28-8b42-4ff7-a4f4-ad4a4fe0d149","name":"Generate the rendered preview of transactional template - default","request":{"urlPathTemplate":"/smtp/template/preview","method":"POST"},"response":{"status":200,"body":"{\n \"fromEmail\": \"fromEmail\",\n \"fromName\": \"fromName\",\n \"html\": \"html\",\n \"previewText\": \"previewText\",\n \"subject\": \"subject\",\n \"usedFeedNames\": [\n \"usedFeedNames\",\n \"usedFeedNames\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"81e1ac28-8b42-4ff7-a4f4-ad4a4fe0d149","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0e4d0a9a-9763-4d0b-92ab-7b1483ddd81b","name":"Get the list of email templates - default","request":{"urlPathTemplate":"/smtp/templates","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"templates\": [\n {\n \"createdAt\": \"2016-02-24T14:44:24Z\",\n \"doiTemplate\": false,\n \"htmlContent\": \"HTML CONTENT 1\",\n \"id\": 5,\n \"isActive\": false,\n \"modifiedAt\": \"2016-02-24T15:37:11Z\",\n \"name\": \"ChristomasTimeTemplate\",\n \"replyTo\": \"replyto@domain.com\",\n \"sender\": {\n \"email\": \"john.smith@example.com\",\n \"id\": \"43\",\n \"name\": \"John\"\n },\n \"subject\": \"Merry Christmas\",\n \"tag\": \"Festival\",\n \"testSent\": false,\n \"toField\": \"\"\n },\n {\n \"createdAt\": \"2016-02-25T11:53:26Z\",\n \"doiTemplate\": false,\n \"htmlContent\": \"HTML CONTENT 2\",\n \"id\": 12,\n \"isActive\": true,\n \"modifiedAt\": \"2016-02-25T11:53:26Z\",\n \"name\": \"SummerSales2017Template\",\n \"replyTo\": \"replyto@domain.com\",\n \"sender\": {\n \"email\": \"john.smith@example.com\",\n \"id\": \"43\",\n \"name\": \"John\"\n },\n \"subject\": \"Enjoy our summer Sales !\",\n \"tag\": \"Summer\",\n \"testSent\": false,\n \"toField\": \"\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"0e4d0a9a-9763-4d0b-92ab-7b1483ddd81b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a7314e1c-958e-4335-9dd3-e65802b21168","name":"Create an email template - default","request":{"urlPathTemplate":"/smtp/templates","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"a7314e1c-958e-4335-9dd3-e65802b21168","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"845ecf0d-a02f-461d-908b-25fe3eab4ec9","name":"Returns the template information - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}","method":"GET","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2016-02-25T11:53:26Z\",\n \"doiTemplate\": false,\n \"htmlContent\": \"HTML CONTENT 4\",\n \"id\": 33,\n \"isActive\": true,\n \"modifiedAt\": \"2016-02-25T11:53:26Z\",\n \"name\": \"OrderConfirmation\",\n \"replyTo\": \"replyto@domain.com\",\n \"sender\": {\n \"email\": \"john.smith@example.com\",\n \"id\": \"43\",\n \"name\": \"John\"\n },\n \"subject\": \"Order Confirmation : Thanks for your Purchase !\",\n \"tag\": \"\",\n \"testSent\": false,\n \"toField\": \"\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"845ecf0d-a02f-461d-908b-25fe3eab4ec9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"65a53a30-7428-4b1a-b0a4-88869d5b8d78","name":"Update an email template - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}","method":"PUT","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"65a53a30-7428-4b1a-b0a4-88869d5b8d78","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ee12d2af-6eea-4dd3-b43d-ca1463b36b14","name":"Delete an inactive email template - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}","method":"DELETE","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ee12d2af-6eea-4dd3-b43d-ca1463b36b14","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"10979c60-afa4-4a94-a43e-5fc9613e22da","name":"Send a template to your test list - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}/sendTest","method":"POST","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"10979c60-afa4-4a94-a43e-5fc9613e22da","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"df5bc4e6-ca5e-4cd7-809c-269c0845b24d","name":"Send SMS message asynchronously to a mobile number - default","request":{"urlPathTemplate":"/transactionalSMS/send","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": 1511882900176220\n}","headers":{"Content-Type":"application/json"}},"uuid":"df5bc4e6-ca5e-4cd7-809c-269c0845b24d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"70d5f369-4f59-482d-a10b-be3e50b4a40a","name":"Send SMS message to a mobile number - default","request":{"urlPathTemplate":"/transactionalSMS/sms","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": 1511882900176220,\n \"reference\": \"ab1cde2fgh3i4jklmno\",\n \"remainingCredits\": 82.85,\n \"smsCount\": 2,\n \"usedCredits\": 0.7\n}","headers":{"Content-Type":"application/json"}},"uuid":"70d5f369-4f59-482d-a10b-be3e50b4a40a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"31feec95-40fc-4b7e-9c08-86c997f2dfb0","name":"Get your SMS activity aggregated over a period of time - default","request":{"urlPathTemplate":"/transactionalSMS/statistics/aggregatedReport","method":"GET"},"response":{"status":200,"body":"{\n \"accepted\": 6,\n \"blocked\": 4,\n \"delivered\": 16,\n \"hardBounces\": 5,\n \"range\": \"2015-05-22|2017-11-29\",\n \"rejected\": 14,\n \"replied\": 8,\n \"requests\": 54,\n \"skipped\": 1,\n \"softBounces\": 26,\n \"unsubscribed\": 10\n}","headers":{"Content-Type":"application/json"}},"uuid":"31feec95-40fc-4b7e-9c08-86c997f2dfb0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8bec6502-a4a6-4405-88f8-c7b97f2bc0e4","name":"Get all your SMS activity (unaggregated events) - default","request":{"urlPathTemplate":"/transactionalSMS/statistics/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"date\": \"2015-05-20T12:30:00Z\",\n \"event\": \"sent\",\n \"messageId\": \"1473139351170140\",\n \"phoneNumber\": \"phoneNumber\",\n \"reason\": \"Recipient is currently unreachable\",\n \"reply\": \"reply\",\n \"tag\": \"cabWaiting\"\n },\n {\n \"date\": \"2015-05-20T16:30:00Z\",\n \"event\": \"delivered\",\n \"messageId\": \"1473139351170140\",\n \"phoneNumber\": \"phoneNumber\",\n \"reason\": \"Recipient is currently unreachable\",\n \"reply\": \"reply\",\n \"tag\": \"cabRequest\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"8bec6502-a4a6-4405-88f8-c7b97f2bc0e4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"34ebfec8-ca13-4071-9f58-e116c00c6446","name":"Get your SMS activity aggregated per day - default","request":{"urlPathTemplate":"/transactionalSMS/statistics/reports","method":"GET"},"response":{"status":200,"body":"{\n \"reports\": [\n {\n \"accepted\": 2318,\n \"blocked\": 1026,\n \"date\": \"2017-04-30\",\n \"delivered\": 10103,\n \"hardBounces\": 21,\n \"rejected\": 0,\n \"replied\": 5091,\n \"requests\": 10756,\n \"skipped\": 1,\n \"softBounces\": 137,\n \"unsubscribed\": 720\n },\n {\n \"accepted\": 4393,\n \"blocked\": 1514,\n \"date\": \"2017-05-01\",\n \"delivered\": 17499,\n \"hardBounces\": 34,\n \"rejected\": 0,\n \"replied\": 10089,\n \"requests\": 18812,\n \"skipped\": 0,\n \"softBounces\": 254,\n \"unsubscribed\": 1090\n },\n {\n \"accepted\": 4689,\n \"blocked\": 1646,\n \"date\": \"2017-05-02\",\n \"delivered\": 13427,\n \"hardBounces\": 16,\n \"rejected\": 0,\n \"replied\": 11563,\n \"requests\": 14321,\n \"skipped\": 1,\n \"softBounces\": 176,\n \"unsubscribed\": 1170\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"34ebfec8-ca13-4071-9f58-e116c00c6446","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"b2c77971-5a16-41bb-99c4-62a5707d47bb","name":"Return all your created SMS templates - default","request":{"urlPathTemplate":"/transactionalSMS/templates","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 1,\n \"templates\": [\n {\n \"id\": 4,\n \"name\": \"Order Confirmation - EN\",\n \"short_url_enabled\": false,\n \"message\": \"Thanks for your order !\",\n \"compliance\": {\n \"compliance_toggle\": true,\n \"organisation_prefix\": \"BREVO\",\n \"stop_keyword\": \"STOP\"\n },\n \"encryption\": true,\n \"unicode_sms\": true,\n \"media_file\": \"brv-logo.png\",\n \"media_file_size\": \"media_file_size\",\n \"media_url\": \"https://img-st2.mailinblue.com/1232/images/content_library/original/69282fe28f55fd22de6e0cf9.png\",\n \"createdAt\": \"2025-05-01T12:30:00Z\",\n \"updatedAt\": \"2025-05-01T12:30:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"b2c77971-5a16-41bb-99c4-62a5707d47bb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]}],"meta":{"total":283}}
\ No newline at end of file
+{"mappings":[{"id":"1211c905-93ae-4aa1-a220-5b0994166727","name":"Get account details - default","request":{"urlPathTemplate":"/account","method":"GET"},"response":{"status":200,"body":"{\n \"organization_id\": \"5fa2b8c123456789abcdef01\",\n \"user_id\": 1234567,\n \"enterprise\": false,\n \"companyName\": \"Acme Marketing Corp\",\n \"email\": \"michael.davis@example.com\",\n \"firstName\": \"Michael\",\n \"lastName\": \"Davis\",\n \"address\": {\n \"city\": \"New York\",\n \"country\": \"United States\",\n \"street\": \"456 Business Ave\",\n \"zipCode\": \"10001\"\n },\n \"dateTimePreferences\": {\n \"timezone\": \"America/New_York\",\n \"timeFormat\": \"12\",\n \"dateFormat\": \"mm-dd-yyyy\"\n },\n \"marketingAutomation\": {\n \"enabled\": true,\n \"key\": \"ma8k2x9v4h7p3d6f1c5e8b2a\"\n },\n \"plan\": [\n {\n \"credits\": 250,\n \"creditsType\": \"sendLimit\",\n \"endDate\": \"1753826567\",\n \"startDate\": \"1751234567\",\n \"type\": \"free\"\n },\n {\n \"credits\": 15,\n \"creditsType\": \"sendLimit\",\n \"endDate\": \"1753826567\",\n \"startDate\": \"1751234567\",\n \"type\": \"sms\"\n }\n ],\n \"planVerticals\": [\n {\n \"planCategory\": \"Marketing\",\n \"planType\": \"free\",\n \"name\": \"Free\",\n \"status\": \"active\",\n \"startDate\": \"1751234567\",\n \"endDate\": \"1753826567\",\n \"users\": {\n \"purchasedSeats\": \"1\",\n \"usedSeats\": \"1\"\n },\n \"credits\": \"250\"\n },\n {\n \"planCategory\": \"Chat\",\n \"planType\": \"free\",\n \"name\": \"Free\",\n \"status\": \"active\",\n \"startDate\": \"1735678901\",\n \"endDate\": \"1767214901\",\n \"users\": {\n \"purchasedSeats\": \"1\",\n \"usedSeats\": \"1\"\n },\n \"credits\": \"250\"\n },\n {\n \"planCategory\": \"CRM\",\n \"planType\": \"free\",\n \"name\": \"Free\",\n \"status\": \"active\",\n \"startDate\": \"1735678900\",\n \"endDate\": \"1767214900\",\n \"users\": {\n \"purchasedSeats\": \"1\",\n \"usedSeats\": \"1\"\n },\n \"credits\": \"250\"\n }\n ],\n \"relay\": {\n \"data\": {\n \"port\": 587,\n \"relay\": \"smtp-relay.brevo.com\",\n \"userName\": \"michael.davis@example.com\"\n },\n \"enabled\": true\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"1211c905-93ae-4aa1-a220-5b0994166727","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8875a0d0-f755-470c-bb61-f8ad06810a28","name":"getAccountActivity - default","request":{"urlPathTemplate":"/organization/activities","method":"GET"},"response":{"status":200,"body":"{\n \"logs\": [\n {\n \"action\": \"login-success\",\n \"date\": \"2023-03-16T16:49:23+05:30\",\n \"user_agent\": \"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)\",\n \"user_email\": \"test@mycompany.com\",\n \"user_ip\": \"192.158.1.34\"\n },\n {\n \"action\": \"update-profile\",\n \"date\": \"2023-03-15T16:49:23+05:30\",\n \"user_agent\": \"Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)\",\n \"user_email\": \"test@myexample.com\",\n \"user_ip\": \"192.158.1.38\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"8875a0d0-f755-470c-bb61-f8ad06810a28","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"22e8ec1f-e4ba-4f4b-996b-17fb7412b82b","name":"Create a new group of sub-accounts - default","request":{"urlPathTemplate":"/corporate/group","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"659xxxxxxxxxxxxxxxx6ef9c8\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"22e8ec1f-e4ba-4f4b-996b-17fb7412b82b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"553c0be2-9f70-4b5f-867b-1d2543c96f46","name":"Delete sub-account from group - default","request":{"urlPathTemplate":"/corporate/group/unlink/{groupId}/subAccounts","method":"PUT","pathParameters":{"groupId":{"equalTo":"groupId"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"553c0be2-9f70-4b5f-867b-1d2543c96f46","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"569cac67-bd04-4628-af18-b29f58c3426a","name":"GET a group details - default","request":{"urlPathTemplate":"/corporate/group/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"group\": {\n \"createdAt\": \"2024-02-09T06:14:40+00:00\",\n \"groupName\": \"My group\",\n \"id\": \"5f926dba72a405440a4efc97\"\n },\n \"sub-accounts\": [\n {\n \"companyName\": \"My sub organization\",\n \"createdAt\": \"2024-02-09T06:14:40+00:00\",\n \"id\": 7866556\n },\n {\n \"companyName\": \"Your sub organization\",\n \"createdAt\": \"2024-01-05T03:11:40+00:00\",\n \"id\": 6563051\n }\n ],\n \"users\": [\n {\n \"email\": \"my-user@my-org.com\",\n \"firstName\": \"John\",\n \"lastName\": \"Smith\"\n },\n {\n \"email\": \"your-user@your-org.com\",\n \"firstName\": \"firstName\",\n \"lastName\": \"lastName\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"569cac67-bd04-4628-af18-b29f58c3426a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"15046c07-f5ad-4826-99a4-368a6abcc9d5","name":"Update a group of sub-accounts - default","request":{"urlPathTemplate":"/corporate/group/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"15046c07-f5ad-4826-99a4-368a6abcc9d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"204960c9-0571-4a3d-a030-f9779c6aea08","name":"Delete a group - default","request":{"urlPathTemplate":"/corporate/group/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"204960c9-0571-4a3d-a030-f9779c6aea08","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d15212a9-7d53-42ef-996e-cbae118ba999","name":"Get the list of groups - default","request":{"urlPathTemplate":"/corporate/groups","method":"GET"},"response":{"status":200,"body":"[\n {\n \"groupName\": \"My group 1\",\n \"id\": \"d3b142c709d6ed67ef1cd903\"\n },\n {\n \"groupName\": \"My group 2\",\n \"id\": \"a5b192a709d6ed67ef8fd922\"\n },\n {\n \"groupName\": \"My group 3\",\n \"id\": \"bbb142c709d6ed67ef1cd910\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"d15212a9-7d53-42ef-996e-cbae118ba999","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"431c56cb-581f-459e-a434-b2378dfbb177","name":"Get the list of all admin users - default","request":{"urlPathTemplate":"/corporate/invited/users","method":"GET"},"response":{"status":200,"body":"{\n \"users\": [\n {\n \"email\": \"master-user2@company.com\",\n \"feature_access\": {\n \"analytics\": [\n \"download_data\",\n \"create_alerts\",\n \"my_looks\",\n \"explore_create\"\n ],\n \"api_keys\": [\n \"all\"\n ],\n \"apps_management\": [\n \"none\"\n ],\n \"create_sub_organizations\": [\n \"all\"\n ],\n \"manage_sub_organizations\": [\n \"all\"\n ],\n \"my_plan\": [\n \"all\",\n \"all\"\n ],\n \"sub_organization_groups\": [\n \"create\",\n \"edit_delete\"\n ],\n \"user_management\": [\n \"none\"\n ]\n },\n \"groups\": {\n \"id\": \"a5c4f22c08d9ed37ef1ca342\",\n \"name\": \"My group\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n },\n {\n \"email\": \"master-user3@company.com\",\n \"feature_access\": {\n \"analytics\": [\n \"create_alerts\",\n \"my_looks\"\n ],\n \"api_keys\": [\n \"none\"\n ],\n \"apps_management\": [\n \"all\"\n ],\n \"create_sub_organizations\": [\n \"all\"\n ],\n \"manage_sub_organizations\": [\n \"all\"\n ],\n \"my_plan\": [\n \"none\",\n \"none\"\n ],\n \"sub_organization_groups\": [\n \"edit_delete\"\n ],\n \"user_management\": [\n \"all\"\n ]\n },\n \"groups\": {\n \"id\": \"a5c4f22c08d9ed37ef1ca342\",\n \"name\": \"My group\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"431c56cb-581f-459e-a434-b2378dfbb177","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"47be7c71-5117-47ca-8146-e166b37fbd89","name":"List of all IPs - default","request":{"urlPathTemplate":"/corporate/ip","method":"GET"},"response":{"status":200,"body":"[\n {\n \"domain\": \"example.com\",\n \"ip\": \"192.168.1.1\",\n \"transactional\": true\n },\n {\n \"domain\": \"example.com\",\n \"ip\": \"192.168.1.2\",\n \"transactional\": false\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"47be7c71-5117-47ca-8146-e166b37fbd89","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c8f6e272-2e8b-4912-b109-ef644f37c748","name":"Get the details of requested master account - default","request":{"urlPathTemplate":"/corporate/masterAccount","method":"GET"},"response":{"status":200,"body":"{\n \"billingInfo\": {\n \"address\": {\n \"countryCode\": \"IN\",\n \"locality\": \"Pandav Nagar, New Delhi\",\n \"postalCode\": \"560048\",\n \"stateCode\": \"UP\",\n \"streetAddress\": \"C-92\"\n },\n \"companyName\": \"Corp Sample 1-1\",\n \"email\": \"sample@example.com\",\n \"name\": {\n \"familyName\": \"Pandit\",\n \"givenName\": \"Uday\"\n }\n },\n \"companyName\": \"Corp Sample 1-1\",\n \"currencyCode\": \"INR\",\n \"email\": \"sample@example.com\",\n \"id\": 1003286,\n \"planInfo\": {\n \"currencyCode\": \"INR\",\n \"features\": [\n {\n \"name\": \"MULTI_USER\",\n \"quantity\": 10,\n \"remaining\": 0,\n \"unitValue\": \"unitValue\",\n \"used\": 15\n },\n {\n \"name\": \"ADVANCED_REPORTING\",\n \"quantity\": 12,\n \"remaining\": 11,\n \"unitValue\": \"unitValue\",\n \"used\": 1\n },\n {\n \"name\": \"INBOX\",\n \"quantity\": 10,\n \"remaining\": 0,\n \"unitValue\": \"unitValue\",\n \"used\": 10\n },\n {\n \"name\": \"LANDING_PAGE\",\n \"quantity\": 10,\n \"remaining\": 0,\n \"unitValue\": \"unitValue\",\n \"used\": 11\n },\n {\n \"name\": \"RECURRING_CREDITS\",\n \"quantity\": 500,\n \"remaining\": 499,\n \"unitValue\": \"unitValue\",\n \"used\": 1\n }\n ],\n \"nextBillingAt\": 1637739295,\n \"planPeriod\": \"month\",\n \"price\": 2100,\n \"subAccounts\": 15\n },\n \"timezone\": \"Europe/Paris\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c8f6e272-2e8b-4912-b109-ef644f37c748","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8fea4e4d-838b-4875-b315-9790bd457518","name":"Generate SSO token to access admin account - default","request":{"urlPathTemplate":"/corporate/ssoToken","method":"POST"},"response":{"status":200,"body":"{\n \"token\": \"5cadaxxxxxxxxxxxxxxxxxxxx5a179f85a0\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8fea4e4d-838b-4875-b315-9790bd457518","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"45b2935e-aecb-4ad4-8888-9a0e585bcd23","name":"Get the list of all the sub-accounts of the master account. - default","request":{"urlPathTemplate":"/corporate/subAccount","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 3,\n \"subAccounts\": [\n {\n \"active\": true,\n \"companyName\": \"Company1\",\n \"createdAt\": 1631523176,\n \"groups\": [\n {\n \"id\": \"5f8f8c3b5f56a02d4433b3a8\",\n \"name\": \"Group 1\"\n },\n {\n \"id\": \"4fbf3c3b1f56a02ac465b1a0\",\n \"name\": \"Group 2\"\n }\n ],\n \"id\": 4043629\n },\n {\n \"active\": true,\n \"companyName\": \"Company2\",\n \"createdAt\": 1629439311,\n \"groups\": [\n {}\n ],\n \"id\": 3984002\n },\n {\n \"active\": true,\n \"companyName\": \"Company3\",\n \"createdAt\": 1614713641,\n \"groups\": [\n {}\n ],\n \"id\": 3524191\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"45b2935e-aecb-4ad4-8888-9a0e585bcd23","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"27e8ff22-470d-462b-a9e2-6cd1c428b361","name":"Create a new sub-account under a master account. - default","request":{"urlPathTemplate":"/corporate/subAccount","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 4109344\n}","headers":{"Content-Type":"application/json"}},"uuid":"27e8ff22-470d-462b-a9e2-6cd1c428b361","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0b1c8ee5-ea29-4bb0-a233-53d0ff4d86fa","name":"Associate an IP to sub-accounts - default","request":{"urlPathTemplate":"/corporate/subAccount/ip/associate","method":"POST"},"response":{"status":201,"body":"{\n \"key\": \"value\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"0b1c8ee5-ea29-4bb0-a233-53d0ff4d86fa","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b9524079-a627-4ed4-8f2a-abb0390700aa","name":"Dissociate an IP to sub-accounts - default","request":{"urlPathTemplate":"/corporate/subAccount/ip/dissociate","method":"PUT"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b9524079-a627-4ed4-8f2a-abb0390700aa","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"69800c09-607d-406d-8817-7c7c51ff5ae1","name":"Create an API key for a sub-account - default","request":{"urlPathTemplate":"/corporate/subAccount/key","method":"POST"},"response":{"status":201,"body":"{\n \"key\": \"xkeysib-21881axxxxxcc92e04-mIrexxxx7z\",\n \"status\": \"success\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"69800c09-607d-406d-8817-7c7c51ff5ae1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c6174a85-f3d7-4550-bc89-0e9814e58cfb","name":"Generate SSO token to access sub-account - default","request":{"urlPathTemplate":"/corporate/subAccount/ssoToken","method":"POST"},"response":{"status":200,"body":"{\n \"token\": \"5cadaxxxxxxxxxxxxxxxxxxxx5a179f85a0\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c6174a85-f3d7-4550-bc89-0e9814e58cfb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a2fc395f-9a4c-407e-bcf3-5eb067c54991","name":"Get sub-account details - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}","method":"GET","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"companyName\": \"API-Sub-26thOct21-4\",\n \"email\": \"uday+1@brevo.com\",\n \"groups\": [\n {\n \"id\": \"5f8f8c3b5f56a02d4433b3a7\",\n \"name\": \"Group 1\"\n },\n {\n \"id\": \"5f8f8c3b5f56a02d4433b3a8\",\n \"name\": \"Group 2\"\n }\n ],\n \"name\": \"Uday Pandit\",\n \"planInfo\": {\n \"credits\": {\n \"emails\": {\n \"quantity\": 2000,\n \"remaining\": 1955\n },\n \"externalFeeds\": {\n \"quantity\": 1,\n \"remaining\": 1\n },\n \"sms\": {\n \"quantity\": 2000,\n \"remaining\": 1955\n },\n \"whatsapp\": {\n \"quantity\": 100,\n \"remaining\": 50\n },\n \"wpSubscribers\": {\n \"quantity\": 2000,\n \"remaining\": 1955\n }\n },\n \"features\": {\n \"inbox\": {\n \"quantity\": 20,\n \"remaining\": 12\n },\n \"landingPage\": {\n \"quantity\": 25,\n \"remaining\": 14\n },\n \"salesUsers\": {\n \"quantity\": 30,\n \"remaining\": 14\n },\n \"users\": {\n \"quantity\": 30,\n \"remaining\": 14\n }\n },\n \"planType\": \"paid\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"a2fc395f-9a4c-407e-bcf3-5eb067c54991","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"574c16a0-400c-46fe-aea7-88b6b1a0b812","name":"Delete a sub-account - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"574c16a0-400c-46fe-aea7-88b6b1a0b812","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"769c18cf-d0ef-4284-83e9-bc297f635f71","name":"Enable/disable sub-account application(s) - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}/applications/toggle","method":"PUT","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"769c18cf-d0ef-4284-83e9-bc297f635f71","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"85c53397-13d2-43ec-986d-7d85858e7c8e","name":"Update sub-account plan - default","request":{"urlPathTemplate":"/corporate/subAccount/{id}/plan","method":"PUT","pathParameters":{"id":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"85c53397-13d2-43ec-986d-7d85858e7c8e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"41b0f555-e1b6-4e40-9e6a-17c8bd025f53","name":"Update sub-accounts plan - default","request":{"urlPathTemplate":"/corporate/subAccounts/plan","method":"PUT"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"41b0f555-e1b6-4e40-9e6a-17c8bd025f53","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2d522f1e-c89e-42da-b070-ffb9ff715ec2","name":"Send invitation to an admin user - default","request":{"urlPathTemplate":"/corporate/user/invitation/send","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"659xxxxxxxxxxxxxxxx6ef9c8\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2d522f1e-c89e-42da-b070-ffb9ff715ec2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d9c935a4-0eec-4d97-9162-0ecfcc38abbb","name":"Resend / cancel admin user invitation - default","request":{"urlPathTemplate":"/corporate/user/invitation/{action}/{email}","method":"PUT","pathParameters":{"action":{"equalTo":"resend"},"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"message\": \"Invitation resent successfully\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"d9c935a4-0eec-4d97-9162-0ecfcc38abbb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a6f000f1-1ae0-4b47-842f-edac9954cb1d","name":"Revoke an admin user - default","request":{"urlPathTemplate":"/corporate/user/revoke/{email}","method":"DELETE","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a6f000f1-1ae0-4b47-842f-edac9954cb1d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f295c79b-1b65-4112-8b0c-b6ce9d87d44f","name":"Check admin user permissions - default","request":{"urlPathTemplate":"/corporate/user/{email}/permissions","method":"GET","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"email\": \"invitedUser@company.com\",\n \"feature_access\": {\n \"analytics\": [\n \"download_data\",\n \"create_alerts\",\n \"my_looks\",\n \"explore_create\"\n ],\n \"api_keys\": [\n \"all\"\n ],\n \"apps_management\": [\n \"all\"\n ],\n \"create_sub_organizations\": [\n \"all\"\n ],\n \"manage_sub_organizations\": [\n \"all\"\n ],\n \"my_plan\": [\n \"all\",\n \"all\"\n ],\n \"sub_organization_groups\": [\n \"create\",\n \"edit_delete\"\n ],\n \"user_management\": [\n \"none\"\n ]\n },\n \"groups\": [\n {\n \"id\": \"6543ab3667ffbb00142e4486\",\n \"name\": \"Support\"\n },\n {\n \"id\": \"174bab366732bbce142e4412\",\n \"name\": \"Technical\"\n }\n ],\n \"status\": \"active\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f295c79b-1b65-4112-8b0c-b6ce9d87d44f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c29d9b3d-5506-4699-8d63-cb5be4b098e1","name":"Change admin user permissions - default","request":{"urlPathTemplate":"/corporate/user/{email}/permissions","method":"PUT","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c29d9b3d-5506-4699-8d63-cb5be4b098e1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5b756ab9-0c76-4ea0-86e3-2629a91ee517","name":"Get the list of all your users - default","request":{"urlPathTemplate":"/organization/invited/users","method":"GET"},"response":{"status":200,"body":"{\n \"users\": [\n {\n \"email\": \"owner@company.com\",\n \"feature_access\": {\n \"conversations\": \"owner\",\n \"crm\": \"owner\",\n \"marketing\": \"owner\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n },\n {\n \"email\": \"pendingInvitedUser@company.com\",\n \"feature_access\": {\n \"conversations\": \"none\",\n \"crm\": \"full\",\n \"marketing\": \"custom\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"pending\"\n },\n {\n \"email\": \"connectedInvitedUser@company.com\",\n \"feature_access\": {\n \"conversations\": \"full\",\n \"crm\": \"none\",\n \"marketing\": \"none\"\n },\n \"is_owner\": \"is_owner\",\n \"status\": \"active\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"5b756ab9-0c76-4ea0-86e3-2629a91ee517","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"027416a7-5144-402b-8e13-ff098d91ec53","name":"Revoke user permission - default","request":{"urlPathTemplate":"/organization/user/invitation/revoke/{email}","method":"PUT","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"credit_notes\": [\n \"TEST-123\"\n ],\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"027416a7-5144-402b-8e13-ff098d91ec53","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3380168e-886f-4ab1-9489-1f453e144d97","name":"Send invitation to user - default","request":{"urlPathTemplate":"/organization/user/invitation/send","method":"POST"},"response":{"status":200,"body":"{\n \"invoice_id\": \"invoice_id\",\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"3380168e-886f-4ab1-9489-1f453e144d97","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fda4aa42-d57d-4f82-8b2b-30f5d0abffa2","name":"Resend / Cancel invitation - default","request":{"urlPathTemplate":"/organization/user/invitation/{action}/{email}","method":"PUT","pathParameters":{"action":{"equalTo":"resend"},"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"credit_notes\": [\n \"TEST-123\"\n ],\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"fda4aa42-d57d-4f82-8b2b-30f5d0abffa2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e3763191-26a9-488e-9abf-c8b9ca82c709","name":"Update permission for a user - default","request":{"urlPathTemplate":"/organization/user/update/permissions","method":"POST"},"response":{"status":200,"body":"{\n \"credit_notes\": [\n \"TEST-123\"\n ],\n \"invoice_id\": \"invoice_id\",\n \"status\": \"OK\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e3763191-26a9-488e-9abf-c8b9ca82c709","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8d0fdcb2-801b-46ec-98ff-ef29fa70f35d","name":"Check user permission - default","request":{"urlPathTemplate":"/organization/user/{email}/permissions","method":"GET","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"{\n \"email\": \"invitedUser@company.com\",\n \"privileges\": [\n {\n \"feature\": \"Email campaign\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Send / schedule / suspend\"\n ]\n },\n {\n \"feature\": \"Templates\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Activate / deactivate\"\n ]\n },\n {\n \"feature\": \"SMS campaign\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Send / schedule / suspend\"\n ]\n },\n {\n \"feature\": \"Facebook Ads\",\n \"permissions\": [\n \"Schedule / pause\"\n ]\n },\n {\n \"feature\": \"Landing pages\",\n \"permissions\": [\n \"All\"\n ]\n },\n {\n \"feature\": \"Workflows\",\n \"permissions\": [\n \"Create / edit / delete\",\n \"Activate / deactivate / Pause\"\n ]\n },\n {\n \"feature\": \"Contacts\",\n \"permissions\": [\n \"View\",\n \"Contact forms\"\n ]\n },\n {\n \"feature\": \"SMTP & API\",\n \"permissions\": [\n \"SMTP\",\n \"API Keys\",\n \"Authorized IPs\"\n ]\n },\n {\n \"feature\": \"User management\",\n \"permissions\": [\n \"None\"\n ]\n },\n {\n \"feature\": \"Sales Platform\",\n \"permissions\": [\n \"Create / edit / delete owned deals and tasks\",\n \"Manage deals and tasks from other users\",\n \"Reports\",\n \"Settings\"\n ]\n },\n {\n \"feature\": \"Conversations\",\n \"permissions\": [\n \"None\"\n ]\n },\n {\n \"feature\": \"Senders, Domains & Dedicated IPs\",\n \"permissions\": [\n \"Senders management\",\n \"Domains management\",\n \"Dedicated IPs management\"\n ]\n },\n {\n \"feature\": \"Push\",\n \"permissions\": [\n \"View\",\n \"Create / edit / delete\",\n \"Send\",\n \"Settings\"\n ]\n },\n {\n \"feature\": \"Companies\",\n \"permissions\": [\n \"Create / edit / delete owned companies\",\n \"Manage companies from other users\",\n \"Settings\"\n ]\n }\n ],\n \"status\": \"active\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8d0fdcb2-801b-46ec-98ff-ef29fa70f35d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ec86c15f-d950-46af-8cc4-d9670d01ec3e","name":"Get background processes - default","request":{"urlPathTemplate":"/processes","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 198,\n \"processes\": [\n {\n \"id\": 217,\n \"name\": \"IMPORTUSER\",\n \"status\": \"completed\",\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:35:00Z\"\n },\n {\n \"id\": 213,\n \"name\": \"SEARCH_EXPORT_USERS\",\n \"status\": \"completed\",\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:35:00Z\"\n },\n {\n \"id\": 212,\n \"name\": \"IMPORTUSER\",\n \"status\": \"queued\",\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:35:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ec86c15f-d950-46af-8cc4-d9670d01ec3e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5cd8a4a8-5754-4b87-aa94-fc464c24ad7a","name":"Get process details - default","request":{"urlPathTemplate":"/processes/{processId}","method":"GET","pathParameters":{"processId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"id\": 217,\n \"name\": \"IMPORTUSER\",\n \"status\": \"queued\",\n \"info\": {\n \"import\": {\n \"invalid_emails\": 2,\n \"duplicate_contact_id\": 0,\n \"duplicate_ext_id\": 1,\n \"duplicate_email_id\": 5,\n \"duplicate_phone_id\": 1,\n \"duplicate_whatsapp_id\": 1,\n \"duplicate_landline_number_id\": 1\n },\n \"export\": {\n \"total_records\": 1250,\n \"file_size\": 102400\n }\n },\n \"export_url\": \"https://s3.eu-west-1.amazonaws.com/api-export.example.com/upload/contacts_export.csv\",\n \"error\": \"Processing timeout exceeded after 30 minutes\",\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"completed_at\": \"2024-01-15T10:32:15Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"5cd8a4a8-5754-4b87-aa94-fc464c24ad7a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6ee5e306-247b-485b-9f81-14d36b3a0bda","name":"Get email senders - default","request":{"urlPathTemplate":"/senders","method":"GET"},"response":{"status":200,"body":"{\n \"senders\": [\n {\n \"active\": true,\n \"email\": \"support@example.com\",\n \"id\": 1,\n \"ips\": [\n {\n \"domain\": \"example.com\",\n \"ip\": \"203.0.113.100\",\n \"weight\": 50\n }\n ],\n \"name\": \"Support Team\"\n },\n {\n \"active\": false,\n \"email\": \"hello@example.com\",\n \"id\": 3,\n \"ips\": [\n {\n \"domain\": \"example.com\",\n \"ip\": \"203.0.113.100\",\n \"weight\": 50\n }\n ],\n \"name\": \"Customer Service\"\n },\n {\n \"active\": false,\n \"email\": \"marketing@testcompany.com\",\n \"id\": 5,\n \"ips\": [\n {\n \"domain\": \"example.com\",\n \"ip\": \"203.0.113.100\",\n \"weight\": 50\n }\n ],\n \"name\": \"Marketing Team\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"6ee5e306-247b-485b-9f81-14d36b3a0bda","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"04b1327d-3b58-45aa-a665-8f8430486eca","name":"Create email sender - default","request":{"urlPathTemplate":"/senders","method":"POST"},"response":{"status":201,"body":"{\n \"dkimError\": false,\n \"id\": 15,\n \"spfError\": false\n}","headers":{"Content-Type":"application/json"}},"uuid":"04b1327d-3b58-45aa-a665-8f8430486eca","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"17fe3a57-60da-42b1-a435-e4cf134d171e","name":"getIps - default","request":{"urlPathTemplate":"/senders/ips","method":"GET"},"response":{"status":200,"body":"{\n \"ips\": [\n {\n \"active\": true,\n \"domain\": \"mailing.enterprise.com\",\n \"id\": 3,\n \"ip\": \"192.168.1.100\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"17fe3a57-60da-42b1-a435-e4cf134d171e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a0fc45b1-4252-4d1d-a02e-f542df6bf33e","name":"updateSender - default","request":{"urlPathTemplate":"/senders/{senderId}","method":"PUT","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a0fc45b1-4252-4d1d-a02e-f542df6bf33e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f691a271-1b98-49eb-b4a0-124162e8a7d5","name":"deleteSender - default","request":{"urlPathTemplate":"/senders/{senderId}","method":"DELETE","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f691a271-1b98-49eb-b4a0-124162e8a7d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a90c739a-2ce1-4058-a434-60d316495970","name":"getIpsFromSender - default","request":{"urlPathTemplate":"/senders/{senderId}/ips","method":"GET","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"ips\": [\n {\n \"domain\": \"mailing.enterprise.com\",\n \"id\": 3,\n \"ip\": \"192.168.1.100\",\n \"weight\": 75\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a90c739a-2ce1-4058-a434-60d316495970","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"868b537b-a700-40e2-bc48-c51dfd0ef8ed","name":"validateSenderByOTP - default","request":{"urlPathTemplate":"/senders/{senderId}/validate","method":"PUT","pathParameters":{"senderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"868b537b-a700-40e2-bc48-c51dfd0ef8ed","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6efe0f37-1aad-44ee-a626-e10a2df32e40","name":"getDomains - default","request":{"urlPathTemplate":"/senders/domains","method":"GET"},"response":{"status":200,"body":"{\n \"domains\": [\n {\n \"id\": \"67e57b40130375f045064c45\",\n \"domain_name\": \"mycompany.com\",\n \"authenticated\": true,\n \"verified\": true,\n \"ip\": \"192.168.1.100\",\n \"provider\": \"Cloudflare\",\n \"creator\": {\n \"id\": \"62e4fce597550d0b0177cb0c\",\n \"email\": \"admin@mycompany.com\",\n \"creationDate\": \"2025-03-27T16:22:24Z\"\n }\n },\n {\n \"id\": \"67f778570dd65f97c70910ed\",\n \"domain_name\": \"newsletter.mycompany.com\",\n \"authenticated\": false,\n \"verified\": true,\n \"provider\": \"GoDaddy\",\n \"creator\": {\n \"id\": \"62e4fce597550d0b0177cb0c\",\n \"email\": \"admin@mycompany.com\",\n \"creationDate\": \"2025-04-10T07:50:47Z\"\n }\n },\n {\n \"id\": \"688cd306d8893504e50ea615\",\n \"domain_name\": \"test.example.com\",\n \"authenticated\": false,\n \"verified\": false,\n \"provider\": \"Other\",\n \"creator\": {\n \"id\": \"62e4fce597550d0b0177cb0c\",\n \"email\": \"admin@mycompany.com\",\n \"creationDate\": \"2025-08-01T14:45:26Z\"\n }\n }\n ],\n \"count\": 3,\n \"current_page\": 1,\n \"total_pages\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"6efe0f37-1aad-44ee-a626-e10a2df32e40","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"d932d31f-c588-47e7-8703-1fc734a1dffd","name":"createDomain - default","request":{"urlPathTemplate":"/senders/domains","method":"POST"},"response":{"status":200,"body":"{\n \"id\": 5,\n \"domain_name\": \"mycompany.com\",\n \"domain_provider\": \"Cloudflare\",\n \"message\": \"Domain added successfully. To authenticate it, add following DNS records\",\n \"dns_records\": {\n \"brevo_code\": {\n \"host_name\": \"@\",\n \"type\": \"TXT\",\n \"value\": \"brevo-code=abc123def456\",\n \"status\": false\n },\n \"dkim_record\": {\n \"host_name\": \"mail._domainkey\",\n \"type\": \"TXT\",\n \"value\": \"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN...\",\n \"status\": false\n },\n \"dmarc_record\": {\n \"host_name\": \"_dmarc\",\n \"type\": \"TXT\",\n \"value\": \"v=DMARC1; p=none; rua=mailto:dmarc@mycompany.com\",\n \"status\": false\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"d932d31f-c588-47e7-8703-1fc734a1dffd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"184d536e-335a-4ef0-8445-30b9081f5725","name":"getDomainConfiguration - default","request":{"urlPathTemplate":"/senders/domains/{domainName}","method":"GET","pathParameters":{"domainName":{"equalTo":"domainName"}}},"response":{"status":200,"body":"{\n \"domain\": \"mycompany.com\",\n \"verified\": true,\n \"authenticated\": true,\n \"dns_records\": {\n \"brevo_code\": {\n \"host_name\": \"@\",\n \"type\": \"TXT\",\n \"value\": \"brevo-code=abc123def456\",\n \"status\": true\n },\n \"dkim_record\": {\n \"host_name\": \"mail._domainkey\",\n \"type\": \"TXT\",\n \"value\": \"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN...\",\n \"status\": true\n },\n \"dmarc_record\": {\n \"host_name\": \"_dmarc\",\n \"type\": \"TXT\",\n \"value\": \"v=DMARC1; p=quarantine; rua=mailto:dmarc@mycompany.com\",\n \"status\": true\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"184d536e-335a-4ef0-8445-30b9081f5725","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"85cfda0d-d298-48b3-8a8f-fcdc75ac72c2","name":"deleteDomain - default","request":{"urlPathTemplate":"/senders/domains/{domainName}","method":"DELETE","pathParameters":{"domainName":{"equalTo":"domainName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"85cfda0d-d298-48b3-8a8f-fcdc75ac72c2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9028b6d6-1ed0-4272-bf1a-30fca4d35a1b","name":"authenticateDomain - default","request":{"urlPathTemplate":"/senders/domains/{domainName}/authenticate","method":"PUT","pathParameters":{"domainName":{"equalTo":"domainName"}}},"response":{"status":200,"body":"{\n \"domain_name\": \"mycompany.com\",\n \"message\": \"Domain has been authenticated successfully.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"9028b6d6-1ed0-4272-bf1a-30fca4d35a1b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"71fd7de8-a010-43ca-bce7-8d0788df718a","name":"getWebhooks - default","request":{"urlPathTemplate":"/webhooks","method":"GET"},"response":{"status":200,"body":"{\n \"webhooks\": [\n {\n \"auth\": {\n \"token\": \"test-auth-token1234\",\n \"type\": \"bearer\"\n },\n \"batched\": true,\n \"channel\": \"email\",\n \"createdAt\": \"2016-07-18T12:30:09Z\",\n \"description\": \"Webhook triggered on campaign openings\",\n \"events\": [\n \"opened\"\n ],\n \"headers\": [\n {\n \"key\": \"cf-secret\",\n \"value\": \"test-header-value\"\n }\n ],\n \"id\": 9864,\n \"modifiedAt\": \"2016-07-18T16:00:50Z\",\n \"type\": \"transactional\",\n \"url\": \"https://example.domain.com/webhook/events/kzfxxxxxxxx0uyo1\"\n },\n {\n \"auth\": {\n \"token\": \"test-auth-token1234\",\n \"type\": \"bearer\"\n },\n \"batched\": true,\n \"channel\": \"sms\",\n \"createdAt\": \"2017-02-20T14:30:00Z\",\n \"description\": \"Webhook triggered on campaign hard bounces\",\n \"events\": [\n \"hardBounces\"\n ],\n \"headers\": [\n {\n \"key\": \"cf-secret\",\n \"value\": \"test-header-value\"\n }\n ],\n \"id\": 22770,\n \"modifiedAt\": \"2017-02-20T19:00:00Z\",\n \"type\": \"marketing\",\n \"url\": \"http://exmaple.domain.com/15kxxxxxn1\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"71fd7de8-a010-43ca-bce7-8d0788df718a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"657ec845-de7a-4389-887a-888df91d2433","name":"createWebhook - default","request":{"urlPathTemplate":"/webhooks","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"657ec845-de7a-4389-887a-888df91d2433","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0bf6e8dd-41ac-4605-b444-f39fff877649","name":"This endpoint will submit a request to get the history of webhooks in the\nCSV file. The link to download the CSV file will be sent to the webhook that\nwas provided in the notifyURL. - default","request":{"urlPathTemplate":"/webhooks/export","method":"POST"},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"0bf6e8dd-41ac-4605-b444-f39fff877649","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"adc43c28-964b-4170-aee2-5bb24add0d04","name":"getWebhook - default","request":{"urlPathTemplate":"/webhooks/{webhookId}","method":"GET","pathParameters":{"webhookId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"auth\": {\n \"token\": \"test-auth-token1234\",\n \"type\": \"bearer\"\n },\n \"batched\": true,\n \"channel\": \"sms\",\n \"createdAt\": \"2016-06-07T09:10:10Z\",\n \"description\": \"Webhook triggered on campaign openings and addition of lists\",\n \"events\": [\n \"listAdditions\",\n \"opened\"\n ],\n \"headers\": [\n {\n \"key\": \"cf-secret\",\n \"value\": \"test-header-value\"\n }\n ],\n \"id\": 7287,\n \"modifiedAt\": \"2016-06-08T11:30:00Z\",\n \"type\": \"marketing\",\n \"url\": \"http://example.domain.com/1brxxxxxx5p1\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"adc43c28-964b-4170-aee2-5bb24add0d04","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ffcb1664-4c31-4340-a525-2b616cf4334c","name":"updateWebhook - default","request":{"urlPathTemplate":"/webhooks/{webhookId}","method":"PUT","pathParameters":{"webhookId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ffcb1664-4c31-4340-a525-2b616cf4334c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"be23bfc5-4a58-4cb4-8191-aee4cb8f244f","name":"deleteWebhook - default","request":{"urlPathTemplate":"/webhooks/{webhookId}","method":"DELETE","pathParameters":{"webhookId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"be23bfc5-4a58-4cb4-8191-aee4cb8f244f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2a8a03cd-cea2-4501-94e0-c2dccdd68f00","name":"Get all external feeds - default","request":{"urlPathTemplate":"/feeds","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 18,\n \"feeds\": [\n {\n \"id\": \"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6\",\n \"name\": \"Product Catalog Feed\",\n \"alias\": \"product_catalog_feed\",\n \"url\": \"https://api.example.com/products\",\n \"authType\": \"noAuth\",\n \"username\": \"apiuser\",\n \"password\": \"apipass\",\n \"token\": \"abc123token456\",\n \"maxRetries\": 3,\n \"cache\": true,\n \"isInternal\": false,\n \"headers\": [\n {\n \"name\": \"Authorization\",\n \"value\": \"Bearer xyz789\"\n }\n ],\n \"createdAt\": \"2025-09-18T13:29:27Z\",\n \"modifiedAt\": \"2025-09-18T13:29:27Z\"\n },\n {\n \"id\": \"c2d3e4f5-a6b7-48c9-90d1-e2f3a4b5c6d7\",\n \"name\": \"Blog News Feed\",\n \"alias\": \"blog_news_feed\",\n \"url\": \"https://blog.example.com/api/posts\",\n \"authType\": \"noAuth\",\n \"username\": \"apiuser\",\n \"password\": \"apipass\",\n \"token\": \"abc123token456\",\n \"maxRetries\": 3,\n \"cache\": true,\n \"isInternal\": true,\n \"headers\": [\n {\n \"name\": \"Authorization\",\n \"value\": \"Bearer xyz789\"\n }\n ],\n \"createdAt\": \"2025-09-17T16:03:25Z\",\n \"modifiedAt\": \"2025-09-17T16:03:25Z\"\n },\n {\n \"id\": \"d3e4f5a6-b7c8-49d0-91e2-f3a4b5c6d7e8\",\n \"name\": \"Public Data Feed\",\n \"alias\": \"public_data_feed\",\n \"url\": \"https://jsonplaceholder.typicode.com/posts\",\n \"authType\": \"noAuth\",\n \"username\": \"apiuser\",\n \"password\": \"apipass\",\n \"token\": \"abc123token456\",\n \"maxRetries\": 3,\n \"cache\": true,\n \"isInternal\": true,\n \"headers\": [\n {\n \"name\": \"Authorization\",\n \"value\": \"Bearer xyz789\"\n }\n ],\n \"createdAt\": \"2025-09-05T09:06:42Z\",\n \"modifiedAt\": \"2025-09-05T09:06:42Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"2a8a03cd-cea2-4501-94e0-c2dccdd68f00","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"6feaee25-9e8b-4798-b9ee-ae7b3aad1442","name":"Create external feed - default","request":{"urlPathTemplate":"/feeds","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"6feaee25-9e8b-4798-b9ee-ae7b3aad1442","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2239ff35-3a80-42f1-b822-81e1d785db03","name":"Get external feed details - default","request":{"urlPathTemplate":"/feeds/{uuid}","method":"GET","pathParameters":{"uuid":{"equalTo":"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6"}}},"response":{"status":200,"body":"{\n \"id\": \"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6\",\n \"name\": \"Product Catalog Feed\",\n \"url\": \"https://api.example.com/products\",\n \"authType\": \"noAuth\",\n \"personalization\": false,\n \"defaultAttr\": \"\",\n \"defaultContact\": \"\",\n \"maxRetries\": 0,\n \"cache\": false,\n \"createdAt\": \"2025-09-18T13:29:27Z\",\n \"modifiedAt\": \"2025-09-18T13:29:27Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2239ff35-3a80-42f1-b822-81e1d785db03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c1cb8e28-7845-4479-a233-737a81218df9","name":"Update external feed - default","request":{"urlPathTemplate":"/feeds/{uuid}","method":"PUT","pathParameters":{"uuid":{"equalTo":"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c1cb8e28-7845-4479-a233-737a81218df9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"63a2125b-2244-41b0-8f75-6e2eb3cfb682","name":"Delete external feed - default","request":{"urlPathTemplate":"/feeds/{uuid}","method":"DELETE","pathParameters":{"uuid":{"equalTo":"b1c2d3e4-f5a6-47b8-89c0-d1e2f3a4b5c6"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"63a2125b-2244-41b0-8f75-6e2eb3cfb682","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"03da01c2-0cff-47d2-996c-4317cabb22c4","name":"Create/Update object records in bulk - default","request":{"urlPathTemplate":"/objects/{object_type}/batch/upsert","method":"POST","pathParameters":{"object_type":{"equalTo":"vehicle"}}},"response":{"status":202,"body":"{\n \"message\": \"Batch object records are being processed\",\n \"processId\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"03da01c2-0cff-47d2-996c-4317cabb22c4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"90e40ddc-ba7b-4979-8f3d-67bcfe9be80d","name":"Get the list of object records and total records count for an object. - default","request":{"urlPathTemplate":"/objects/{object_type}/records","method":"GET","pathParameters":{"object_type":{"equalTo":"vehicle"}}},"response":{"status":200,"body":"{\n \"count\": 350,\n \"records\": [\n {\n \"associations\": [\n {\n \"object_type\": \"garage\",\n \"records\": [\n {\n \"identifiers\": {\n \"id\": 12345\n }\n }\n ]\n }\n ],\n \"attributes\": {\n \"color\": \"Black\",\n \"engine_type\": \"Hybrid\",\n \"make\": \"Toyoto\",\n \"model\": \"Corolla\",\n \"year\": 2020\n },\n \"createdAt\": \"2025-07-22T10:20:30Z\",\n \"identifiers\": {\n \"ext_id\": \"507f1f77bc\",\n \"id\": 16789\n },\n \"updatedAt\": \"2025-07-22T10:20:30Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"90e40ddc-ba7b-4979-8f3d-67bcfe9be80d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dc28fc32-e60d-4ec0-a256-912ae9ca2cbd","name":"Delete multiple object records (up to 1000) asynchronously - default","request":{"urlPathTemplate":"/objects/{object_type}/batch/delete","method":"POST","pathParameters":{"object_type":{"equalTo":"vehicle"}}},"response":{"status":202,"body":"{\n \"processId\": 21,\n \"message\": \"Batch object records are being processed for deletion.\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"dc28fc32-e60d-4ec0-a256-912ae9ca2cbd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8729f948-4808-4d8f-b027-70b35a734218","name":"Get all the contacts - default","request":{"urlPathTemplate":"/contacts","method":"GET"},"response":{"status":200,"body":"{\n \"contacts\": [\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"email\": \"contact1@example.com\",\n \"emailBlacklisted\": true,\n \"id\": 247,\n \"listIds\": [\n 43,\n 58\n ],\n \"listUnsubscribed\": [\n 1000000\n ],\n \"modifiedAt\": \"2017-05-01T17:05:03Z\",\n \"smsBlacklisted\": true\n },\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"email\": \"33058407248@mailin-sms.com\",\n \"emailBlacklisted\": true,\n \"id\": 245,\n \"listIds\": [\n 43,\n 61,\n 58\n ],\n \"listUnsubscribed\": [\n 1000000\n ],\n \"modifiedAt\": \"2017-05-01T17:05:03Z\",\n \"smsBlacklisted\": false\n }\n ],\n \"count\": 3\n}","headers":{"Content-Type":"application/json"}},"uuid":"8729f948-4808-4d8f-b027-70b35a734218","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"fe3c55db-75e2-4d78-85c0-eaed9f642c83","name":"Create a contact - default","request":{"urlPathTemplate":"/contacts","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"fe3c55db-75e2-4d78-85c0-eaed9f642c83","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dd0aa44d-f601-4c28-8481-1c0b25bb46aa","name":"List all attributes - default","request":{"urlPathTemplate":"/contacts/attributes","method":"GET"},"response":{"status":200,"body":"{\n \"attributes\": [\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"LASTNAME\",\n \"type\": \"text\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"FIRSTNAME\",\n \"type\": \"text\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"DOB\",\n \"type\": \"date\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"category\",\n \"enumeration\": [\n {\n \"label\": \"Men\",\n \"value\": 1\n },\n {\n \"label\": \"Women\",\n \"value\": 2\n },\n {\n \"label\": \"Kid\",\n \"value\": 3\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"GENDER\",\n \"type\": \"text\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\"\n ],\n \"name\": \"BDO\",\n \"type\": \"user\"\n },\n {\n \"calculatedValue\": \"COUNT[ORDER_ID,ORDER_DATE,==,NOW(-1)]\",\n \"category\": \"normal\",\n \"enumeration\": [\n {\n \"label\": \"Women\",\n \"value\": 1\n }\n ],\n \"multiCategoryOptions\": [\n \"USA\",\n \"India\",\n \"France\"\n ],\n \"name\": \"COUNTRY\",\n \"type\": \"multiple-choice\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"dd0aa44d-f601-4c28-8481-1c0b25bb46aa","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1253fdcb-3d6c-4957-88ab-df297d7154ab","name":"Create contact attribute - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeCategory}/{attributeName}","method":"POST","pathParameters":{"attributeCategory":{"equalTo":"normal"},"attributeName":{"equalTo":"attributeName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1253fdcb-3d6c-4957-88ab-df297d7154ab","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f02e59a5-f5b5-400d-8697-22eace5165c5","name":"Update contact attribute - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeCategory}/{attributeName}","method":"PUT","pathParameters":{"attributeCategory":{"equalTo":"category"},"attributeName":{"equalTo":"attributeName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f02e59a5-f5b5-400d-8697-22eace5165c5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eed9112c-42ea-4dba-a3c1-5bc5eea04b6a","name":"Delete an attribute - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeCategory}/{attributeName}","method":"DELETE","pathParameters":{"attributeCategory":{"equalTo":"normal"},"attributeName":{"equalTo":"attributeName"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"eed9112c-42ea-4dba-a3c1-5bc5eea04b6a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"827de4b0-dfdc-45c9-a27a-819a6acaece3","name":"Delete a multiple-choice attribute option - default","request":{"urlPathTemplate":"/contacts/attributes/{attributeType}/{multipleChoiceAttribute}/{multipleChoiceAttributeOption}","method":"DELETE","pathParameters":{"attributeType":{"equalTo":"multiple-choice"},"multipleChoiceAttribute":{"equalTo":"multipleChoiceAttribute"},"multipleChoiceAttributeOption":{"equalTo":"multipleChoiceAttributeOption"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"827de4b0-dfdc-45c9-a27a-819a6acaece3","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6ba8cd16-ea25-49a7-8288-e0cf22a8b065","name":"Update multiple contacts - default","request":{"urlPathTemplate":"/contacts/batch","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"6ba8cd16-ea25-49a7-8288-e0cf22a8b065","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2b7fdfe7-8f83-41bd-81d2-b42f70ff4603","name":"Create Contact via DOI (Double-Opt-In) Flow - default","request":{"urlPathTemplate":"/contacts/doubleOptinConfirmation","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"2b7fdfe7-8f83-41bd-81d2-b42f70ff4603","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1a2d075b-a8de-4135-b0c9-58bcfe31c7e4","name":"Export contacts - default","request":{"urlPathTemplate":"/contacts/export","method":"POST"},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"1a2d075b-a8de-4135-b0c9-58bcfe31c7e4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c175e62d-23d7-4d5a-bc46-7093ac21de08","name":"Get all folders - default","request":{"urlPathTemplate":"/contacts/folders","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"folders\": [\n {\n \"id\": 42,\n \"name\": \"Ninja_Form\",\n \"totalBlacklisted\": 98,\n \"totalSubscribers\": 4567,\n \"uniqueSubscribers\": 4665\n },\n {\n \"id\": 29,\n \"name\": \"Prestashop\",\n \"totalBlacklisted\": 10,\n \"totalSubscribers\": 6543,\n \"uniqueSubscribers\": 6553\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"c175e62d-23d7-4d5a-bc46-7093ac21de08","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"40d55e83-c362-440b-9ad3-3cbb47ed0eb0","name":"Create a folder - default","request":{"urlPathTemplate":"/contacts/folders","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"40d55e83-c362-440b-9ad3-3cbb47ed0eb0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"64a96da1-15c5-426f-a455-f6ec46ff0434","name":"Returns a folder's details - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}","method":"GET","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"id\": 1,\n \"name\": \"Client_Folder\",\n \"totalBlacklisted\": 987,\n \"totalSubscribers\": 16778,\n \"uniqueSubscribers\": 17765\n}","headers":{"Content-Type":"application/json"}},"uuid":"64a96da1-15c5-426f-a455-f6ec46ff0434","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"701dc90d-1130-42e1-93d3-8ef73e8f8596","name":"Update a folder - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}","method":"PUT","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"701dc90d-1130-42e1-93d3-8ef73e8f8596","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a33a22a6-f7ae-41f1-9646-c37d999a9421","name":"Delete a folder (and all its lists) - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}","method":"DELETE","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a33a22a6-f7ae-41f1-9646-c37d999a9421","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1bbaf637-2edd-4ded-8338-3f42e8e93b45","name":"Get lists in a folder - default","request":{"urlPathTemplate":"/contacts/folders/{folderId}/lists","method":"GET","pathParameters":{"folderId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"count\": 3,\n \"lists\": [\n {\n \"id\": 46,\n \"name\": \"Reactiv\",\n \"totalBlacklisted\": 0,\n \"totalSubscribers\": 7655,\n \"uniqueSubscribers\": 7655\n },\n {\n \"id\": 41,\n \"name\": \"NY_Area\",\n \"totalBlacklisted\": 23,\n \"totalSubscribers\": 3654,\n \"uniqueSubscribers\": 3677\n },\n {\n \"id\": 22,\n \"name\": \"VIP_Customer\",\n \"totalBlacklisted\": 72,\n \"totalSubscribers\": 8753,\n \"uniqueSubscribers\": 8826\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"1bbaf637-2edd-4ded-8338-3f42e8e93b45","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c104d034-1156-452e-a1f5-90baae3a120e","name":"Import contacts - default","request":{"urlPathTemplate":"/contacts/import","method":"POST"},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"c104d034-1156-452e-a1f5-90baae3a120e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ede870d3-ebf8-4b09-851f-f8abb13c3b81","name":"Get all the lists - default","request":{"urlPathTemplate":"/contacts/lists","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"lists\": [\n {\n \"id\": 53,\n \"name\": \"Spanish_Speakers\",\n \"totalBlacklisted\": 65,\n \"totalSubscribers\": 5432,\n \"uniqueSubscribers\": 5497,\n \"folderId\": 1\n },\n {\n \"id\": 50,\n \"name\": \"Other\",\n \"totalBlacklisted\": 765,\n \"totalSubscribers\": 10976,\n \"uniqueSubscribers\": 11741,\n \"folderId\": 2\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ede870d3-ebf8-4b09-851f-f8abb13c3b81","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"ecaaf193-0526-47f7-a447-6866f25d6a35","name":"Create a list - default","request":{"urlPathTemplate":"/contacts/lists","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"ecaaf193-0526-47f7-a447-6866f25d6a35","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d2bcf613-ab25-4a1d-acfc-f9189c9abdce","name":"Get a list's details - default","request":{"urlPathTemplate":"/contacts/lists/{listId}","method":"GET","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"id\": 12,\n \"name\": \"Newsletter_Weekly\",\n \"totalBlacklisted\": 63,\n \"totalSubscribers\": 6533,\n \"uniqueSubscribers\": 6596,\n \"campaignStats\": [\n {\n \"campaignId\": 15,\n \"stats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 789,\n \"complaints\": 0,\n \"deferred\": 0,\n \"delivered\": 6632,\n \"estimatedViews\": 560,\n \"hardBounces\": 4,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 6645,\n \"softBounces\": 34,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 701,\n \"uniqueViews\": 3442,\n \"unsubscriptions\": 4,\n \"viewed\": 4322\n }\n },\n {\n \"campaignId\": 45,\n \"stats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 788,\n \"complaints\": 1,\n \"deferred\": 0,\n \"delivered\": 4078,\n \"estimatedViews\": 560,\n \"hardBounces\": 2,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 4334,\n \"softBounces\": 18,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 654,\n \"uniqueViews\": 987,\n \"unsubscriptions\": 4,\n \"viewed\": 1555\n }\n }\n ],\n \"createdAt\": \"2016-02-26T11:56:08Z\",\n \"dynamicList\": false,\n \"folderId\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"d2bcf613-ab25-4a1d-acfc-f9189c9abdce","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fd940864-d48a-47f4-8db8-5960a7657dcc","name":"Update a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}","method":"PUT","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fd940864-d48a-47f4-8db8-5960a7657dcc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f9aace2d-f1ee-48cf-9a00-2ce8a8e876de","name":"Delete a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}","method":"DELETE","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f9aace2d-f1ee-48cf-9a00-2ce8a8e876de","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1e736496-14de-4379-b319-5857e47950dc","name":"Get contacts in a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}/contacts","method":"GET","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"contacts\": [\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"email\": \"alex.pain@example.com\",\n \"emailBlacklisted\": false,\n \"id\": 45,\n \"listIds\": [\n 12,\n 9,\n 20\n ],\n \"listUnsubscribed\": [\n 1,\n 2\n ],\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"smsBlacklisted\": true\n },\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"email\": \"john.smith@example.com\",\n \"emailBlacklisted\": true,\n \"id\": 32,\n \"listIds\": [\n 12\n ],\n \"listUnsubscribed\": [\n 1\n ],\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"smsBlacklisted\": false\n },\n {\n \"attributes\": {},\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"email\": \"helen.rose@example.com\",\n \"emailBlacklisted\": true,\n \"id\": 65,\n \"listIds\": [\n 12,\n 9,\n 20\n ],\n \"listUnsubscribed\": [\n 1\n ],\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"smsBlacklisted\": false\n }\n ],\n \"count\": 17655\n}","headers":{"Content-Type":"application/json"}},"uuid":"1e736496-14de-4379-b319-5857e47950dc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f1dbcb2f-9c0d-4ccd-a750-28e2c2f9e6f9","name":"Add existing contacts to a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}/contacts/add","method":"POST","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":201,"body":"{\n \"contacts\": {\n \"failure\": [\n \"jeff32@example.com, jim56@example.com\"\n ],\n \"processId\": 78,\n \"success\": [\n \"success\"\n ],\n \"total\": 27\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"f1dbcb2f-9c0d-4ccd-a750-28e2c2f9e6f9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"36e0a4db-6281-4b17-bcbe-d10a330348a5","name":"Delete a contact from a list - default","request":{"urlPathTemplate":"/contacts/lists/{listId}/contacts/remove","method":"POST","pathParameters":{"listId":{"equalTo":"1000000"}}},"response":{"status":201,"body":"{\n \"contacts\": {\n \"failure\": [\n \"jeff32@example.com, jim56@example.com\"\n ],\n \"processId\": 78,\n \"success\": [\n \"success\"\n ],\n \"total\": 27\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"36e0a4db-6281-4b17-bcbe-d10a330348a5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dd30aa5c-59ad-4ff0-a95f-bf685d7b279e","name":"Get all the segments - default","request":{"urlPathTemplate":"/contacts/segments","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"segments\": [\n {\n \"categoryName\": \"Name1\",\n \"id\": 53,\n \"segmentName\": \"Segment1\",\n \"updatedAt\": \"2017-03-12T12:30:00Z\"\n },\n {\n \"categoryName\": \"Name2\",\n \"id\": 50,\n \"segmentName\": \"Segment2\",\n \"updatedAt\": \"2017-03-12T12:30:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"dd30aa5c-59ad-4ff0-a95f-bf685d7b279e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5a0e7075-a413-4c22-a2bf-aa2f8e383d6d","name":"Get a contact's details - default","request":{"urlPathTemplate":"/contacts/{identifier}","method":"GET","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"{\n \"attributes\": {},\n \"createdAt\": \"2017-05-02T16:40:31Z\",\n \"email\": \"peggy.rain@example.com\",\n \"emailBlacklisted\": false,\n \"id\": 42,\n \"listIds\": [\n 40\n ],\n \"listUnsubscribed\": [\n 1000000\n ],\n \"modifiedAt\": \"2017-05-02T16:40:31Z\",\n \"smsBlacklisted\": false,\n \"statistics\": {\n \"clicked\": [\n {\n \"campaignId\": 21,\n \"links\": [\n {\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:25:01Z\",\n \"ip\": \"66.249.93.118\",\n \"url\": \"https://url.domain.com/fbe5387ec717e333628380454f68670010b205ff/1/go?uid={EMAIL}&utm_source=brevo&utm_campaign=test_camp&utm_medium=email\"\n }\n ]\n }\n ],\n \"complaints\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"delivered\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T21:24:56Z\"\n }\n ],\n \"hardBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"messagesSent\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T20:15:13Z\"\n },\n {\n \"campaignId\": 42,\n \"eventTime\": \"2016-10-17T10:30:01Z\"\n }\n ],\n \"opened\": [\n {\n \"campaignId\": 21,\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:24:56Z\",\n \"ip\": \"66.249.93.118\"\n },\n {\n \"campaignId\": 68,\n \"count\": 1,\n \"eventTime\": \"2017-01-30T13:56:40Z\",\n \"ip\": \"66.249.93.217\"\n }\n ],\n \"softBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"transacAttributes\": [\n {}\n ],\n \"unsubscriptions\": {\n \"adminUnsubscription\": [\n {\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ],\n \"userUnsubscription\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ]\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"5a0e7075-a413-4c22-a2bf-aa2f8e383d6d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"75a6a0e6-ae00-42cb-82ae-0bbe1f8bd2d1","name":"Update a contact - default","request":{"urlPathTemplate":"/contacts/{identifier}","method":"PUT","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"75a6a0e6-ae00-42cb-82ae-0bbe1f8bd2d1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fb8d40ed-00fd-4acc-88a7-32580773691f","name":"Delete a contact - default","request":{"urlPathTemplate":"/contacts/{identifier}","method":"DELETE","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fb8d40ed-00fd-4acc-88a7-32580773691f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9797e88c-e80c-4130-9605-8986d5de0403","name":"Get email campaigns' statistics for a contact - default","request":{"urlPathTemplate":"/contacts/{identifier}/campaignStats","method":"GET","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"{\n \"clicked\": [\n {\n \"campaignId\": 21,\n \"links\": [\n {\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:25:01Z\",\n \"ip\": \"66.249.93.118\",\n \"url\": \"https://url.domain.com/fbe5387ec717e333628380454f68670010b205ff/1/go?uid={EMAIL}&utm_source=brevo&utm_campaign=test_camp&utm_medium=email\"\n }\n ]\n }\n ],\n \"complaints\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"delivered\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T21:24:56Z\"\n }\n ],\n \"hardBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"messagesSent\": [\n {\n \"campaignId\": 21,\n \"eventTime\": \"2016-05-03T20:15:13Z\"\n },\n {\n \"campaignId\": 42,\n \"eventTime\": \"2016-10-17T10:30:01Z\"\n },\n {\n \"campaignId\": 45,\n \"eventTime\": \"2016-11-09T11:45:02Z\"\n }\n ],\n \"opened\": [\n {\n \"campaignId\": 21,\n \"count\": 2,\n \"eventTime\": \"2016-05-03T21:24:56Z\",\n \"ip\": \"66.249.93.118\"\n },\n {\n \"campaignId\": 45,\n \"count\": 1,\n \"eventTime\": \"2017-01-30T13:56:40Z\",\n \"ip\": \"66.249.93.217\"\n }\n ],\n \"softBounces\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\"\n }\n ],\n \"transacAttributes\": [\n {\n \"orderDate\": \"2017-03-12\",\n \"orderId\": 248,\n \"orderPrice\": 24.99\n }\n ],\n \"unsubscriptions\": {\n \"adminUnsubscription\": [\n {\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ],\n \"userUnsubscription\": [\n {\n \"campaignId\": 3,\n \"eventTime\": \"2017-03-12T20:15:13Z\",\n \"ip\": \"165.87.3.15\"\n }\n ]\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"9797e88c-e80c-4130-9605-8986d5de0403","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"989a2ce4-8788-48cc-963d-3d86cc2b2dd2","name":"Sets agentβs status to online for 2-3 minutes - default","request":{"urlPathTemplate":"/conversations/agentOnlinePing","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"989a2ce4-8788-48cc-963d-3d86cc2b2dd2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0b2458f6-3c0f-4f03-9f63-8051466d793b","name":"Send a message as an agent - default","request":{"urlPathTemplate":"/conversations/messages","method":"POST"},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1482512803740,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Hello! How can I help you?\",\n \"id\": \"eYBEm3gq3zc5ayE2g\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": false,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Hello! How can I help you?\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"0b2458f6-3c0f-4f03-9f63-8051466d793b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"73c7e27f-534f-4bff-ae89-6508af694971","name":"Get a message - default","request":{"urlPathTemplate":"/conversations/messages/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1482512803740,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Hello! How can I help you?\",\n \"id\": \"eYBEm3gq3zc5ayE2g\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": false,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Hello! How can I help you?\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"73c7e27f-534f-4bff-ae89-6508af694971","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"92155bd1-c19b-4aad-99c9-8a69133fc185","name":"Update a message sent by an agent - default","request":{"urlPathTemplate":"/conversations/messages/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1482512803740,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Hello! How can I help you?\",\n \"id\": \"eYBEm3gq3zc5ayE2g\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": false,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Hello! How can I help you?\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"92155bd1-c19b-4aad-99c9-8a69133fc185","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"55448424-484f-42a8-b091-f8c24234f898","name":"Delete a message sent by an agent - default","request":{"urlPathTemplate":"/conversations/messages/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"55448424-484f-42a8-b091-f8c24234f898","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7da39f40-5660-4486-b572-835f3f204973","name":"Send an automated message to a visitor - default","request":{"urlPathTemplate":"/conversations/pushedMessages","method":"POST"},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1470222622433,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"id\": \"AXCR3k9bpSY7bpuh7\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": true,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"7da39f40-5660-4486-b572-835f3f204973","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"12a96082-f3dc-4674-b4a6-a2fc4b6aea92","name":"Get an automated message - default","request":{"urlPathTemplate":"/conversations/pushedMessages/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1470222622433,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"id\": \"AXCR3k9bpSY7bpuh7\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": true,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 3325 9667 4328 88\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"12a96082-f3dc-4674-b4a6-a2fc4b6aea92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"88f6c974-0fa5-4c85-bd4a-2c306144fb5a","name":"Update an automated message - default","request":{"urlPathTemplate":"/conversations/pushedMessages/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"agentId\": \"d9nKoegKSjmCtyK78\",\n \"agentName\": \"Liz\",\n \"agentUserpic\": \"https://www.brevo.com/\",\n \"attachments\": [\n {\n \"fileName\": \"fileName\",\n \"inlineId\": \"inlineId\",\n \"isImage\": true,\n \"isInline\": \"isInline\",\n \"size\": 1000000,\n \"url\": \"url\"\n }\n ],\n \"bcc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"cc\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"createdAt\": 1470222622433,\n \"file\": {\n \"filename\": \"conversations.png\",\n \"imageInfo\": {\n \"height\": 525,\n \"previewUrl\": \"https://ucarecdn.com/03cd56cd-1de9-4f65-996d-08afdf27fa1b/-/preview/800x800/-/quality/lighter/\",\n \"width\": 1129\n },\n \"isImage\": true,\n \"size\": 15538,\n \"url\": \"https://ucarecdn.com/cee5c10c-8302-45c1-b1fb-43860ca941a9/\"\n },\n \"forwardedToSourceStatus\": {\n \"error\": \"error\",\n \"isSuccess\": true\n },\n \"from\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"html\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 4668 7775 9233 54\",\n \"id\": \"AXCR3k9bpSY7bpuh7\",\n \"integrations\": {\n \"key\": \"value\"\n },\n \"isBot\": true,\n \"isMissed\": false,\n \"isMissedByVisitor\": false,\n \"isPushed\": true,\n \"isTrigger\": false,\n \"rawUnsafeHtml\": \"Good morning!
How can I help you?\",\n \"receivedFrom\": \"SuperAwesomeHelpdesk\",\n \"replyTo\": {\n \"email\": \"email\",\n \"name\": \"name\"\n },\n \"sourceMessageId\": \"sourceMessageId\",\n \"subject\": \"Invitation to a meeting\",\n \"text\": \"Your order has shipped! Hereβs your tracking number: 9114 5847 4668 7775 9233 54\",\n \"to\": [\n {\n \"email\": \"email\",\n \"name\": \"name\"\n }\n ],\n \"type\": \"agent\",\n \"visitorId\": \"kZMvWhf8npAu3H6qd57w2Hv6nh6rnxvg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"88f6c974-0fa5-4c85-bd4a-2c306144fb5a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a43cca1b-0cb5-4197-ad31-8ce0e455a7fe","name":"Delete an automated message - default","request":{"urlPathTemplate":"/conversations/pushedMessages/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a43cca1b-0cb5-4197-ad31-8ce0e455a7fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"27ddcd9f-5f2e-408f-a518-a4e395c047ee","name":"Set visitor group assignment - default","request":{"urlPathTemplate":"/conversations/visitorGroup","method":"PUT"},"response":{"status":200,"body":"{\n \"groupId\": \"PjRBMhWGen6aRHjif\",\n \"visitorId\": \"AXCR3k9bpSY7bpuh7\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"27ddcd9f-5f2e-408f-a518-a4e395c047ee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6e38c169-881b-465d-ae5b-201dfe4364a5","name":"Return all your categories - default","request":{"urlPathTemplate":"/categories","method":"GET"},"response":{"status":200,"body":"{\n \"categories\": [\n {\n \"createdAt\": \"2021-12-31T11:42:35.638Z\",\n \"id\": \"C19\",\n \"isDeleted\": true,\n \"modifiedAt\": \"2022-03-03T14:48:31.867Z\",\n \"name\": \"Food\",\n \"url\": \"http://mydomain.com/category/food\"\n },\n {\n \"createdAt\": \"2021-12-31T11:42:35.638Z\",\n \"id\": \"C20\",\n \"isDeleted\": true,\n \"modifiedAt\": \"2022-03-03T14:48:31.867Z\",\n \"name\": \"clothing\",\n \"url\": \"http://mydomain.com/category/clothing\"\n }\n ],\n \"count\": 2\n}","headers":{"Content-Type":"application/json"}},"uuid":"6e38c169-881b-465d-ae5b-201dfe4364a5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c1c0c1db-676d-40e5-954f-ce7abd8fa780","name":"Create/Update a category - default","request":{"urlPathTemplate":"/categories","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"c1c0c1db-676d-40e5-954f-ce7abd8fa780","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3355346d-e446-4635-9316-d9de9c0c8459","name":"Create categories in batch - default","request":{"urlPathTemplate":"/categories/batch","method":"POST"},"response":{"status":201,"body":"{\n \"createdCount\": 2,\n \"updatedCount\": 7\n}","headers":{"Content-Type":"application/json"}},"uuid":"3355346d-e446-4635-9316-d9de9c0c8459","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e9a3bc64-c4fb-42bc-a44c-51ff0565f57d","name":"Get a category details - default","request":{"urlPathTemplate":"/categories/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"id\": \"C11\",\n \"isDeleted\": true,\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"name\": \"Electronics\",\n \"url\": \"http://mydomain.com/category/clothing\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e9a3bc64-c4fb-42bc-a44c-51ff0565f57d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4aa9f4f1-3b05-446e-a5c8-175ce020f7dd","name":"Activate the eCommerce app - default","request":{"urlPathTemplate":"/ecommerce/activate","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4aa9f4f1-3b05-446e-a5c8-175ce020f7dd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ef76fef3-dd84-4cf8-9fa5-ff136eea6618","name":"Get attribution metrics for one or more Brevo campaigns or workflows - default","request":{"urlPathTemplate":"/ecommerce/attribution/metrics","method":"GET"},"response":{"status":200,"body":"{\n \"results\": [\n {\n \"averageBasket\": 3,\n \"conversionSource\": \"email_campaign\",\n \"id\": 1.1,\n \"ordersCount\": 300,\n \"revenue\": 900\n },\n {\n \"averageBasket\": 4,\n \"conversionSource\": \"email_campaign\",\n \"id\": 1.1,\n \"ordersCount\": 200,\n \"revenue\": 800\n }\n ],\n \"totals\": {\n \"averageBasket\": 3.4,\n \"ordersCount\": 500,\n \"revenue\": 1700\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"ef76fef3-dd84-4cf8-9fa5-ff136eea6618","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a673ac7e-f9a7-4c21-bd80-b49ff3c73efc","name":"Get detailed attribution metrics for a single Brevo campaign or workflow - default","request":{"urlPathTemplate":"/ecommerce/attribution/metrics/{conversionSource}/{conversionSourceId}","method":"GET","pathParameters":{"conversionSource":{"equalTo":"email_campaign"},"conversionSourceId":{"equalTo":"sale"}}},"response":{"status":200,"body":"{\n \"averageBasket\": 1.1,\n \"conversionSource\": \"email_campaign\",\n \"id\": 1.1,\n \"ordersCount\": 1.1,\n \"revenue\": 1.1,\n \"newCustomersCount\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"a673ac7e-f9a7-4c21-bd80-b49ff3c73efc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d80e42ab-4376-47f6-9971-baead08cd9ec","name":"Get attributed product sales for a single Brevo campaign or workflow - default","request":{"urlPathTemplate":"/ecommerce/attribution/products/{conversionSource}/{conversionSourceId}","method":"GET","pathParameters":{"conversionSource":{"equalTo":"email_campaign"},"conversionSourceId":{"equalTo":"sale"}}},"response":{"status":200,"body":"{\n \"products\": [\n {\n \"id\": \"1\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"name\": \"Milky Way Galaxy\",\n \"ordersCount\": 200,\n \"price\": 1000,\n \"revenue\": 999.99,\n \"sku\": \"sku-1\",\n \"url\": \"https://mydomain.com/products/alpina-panoma-classic\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"d80e42ab-4376-47f6-9971-baead08cd9ec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ab816e77-ae78-42da-b0ac-c9e2a426dd38","name":"Get the ISO 4217 compliant display currency code for your Brevo account - default","request":{"urlPathTemplate":"/ecommerce/config/displayCurrency","method":"GET"},"response":{"status":200,"body":"{\n \"code\": \"EUR\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"ab816e77-ae78-42da-b0ac-c9e2a426dd38","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c8c71b7b-bc9d-4d4f-83d0-1d4a57463596","name":"Set the ISO 4217 compliant display currency code for your Brevo account - default","request":{"urlPathTemplate":"/ecommerce/config/displayCurrency","method":"POST"},"response":{"status":200,"body":"{\n \"code\": \"EUR\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c8c71b7b-bc9d-4d4f-83d0-1d4a57463596","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a36a1140-3b78-405a-bb99-4be25b0e6f61","name":"Get order details - default","request":{"urlPathTemplate":"/orders","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 1,\n \"orders\": [\n {\n \"amount\": 2000,\n \"billing\": {\n \"address\": \"Sec 62, Noida\",\n \"city\": \"Noida\",\n \"country\": \"India\",\n \"countryCode\": \"IN\",\n \"paymentMethod\": \"Net banking\",\n \"phone\": 9238283982,\n \"postCode\": 110001,\n \"region\": \"North India\"\n },\n \"contact_id\": 2,\n \"coupons\": [\n \"flat50\",\n \"flat40\"\n ],\n \"createdAt\": \"2021-12-31T11:42:35.638Z\",\n \"email\": \"testvisitor@sendinblue.com\",\n \"id\": \"order1803\",\n \"identifiers\": {\n \"ext_id\": \"ab12\",\n \"loyalty_subscription_id\": \"1234\"\n },\n \"products\": [\n {\n \"price\": 100,\n \"productId\": 21,\n \"quantity\": 2,\n \"quantityFloat\": 0,\n \"variantId\": \"P100\"\n },\n {\n \"price\": 100,\n \"productId\": 21,\n \"quantity\": 0,\n \"quantityFloat\": 2.52,\n \"variantId\": \"P15756\"\n }\n ],\n \"status\": \"complete\",\n \"storeId\": \"123\",\n \"updatedAt\": \"2022-03-03T14:48:31.867Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a36a1140-3b78-405a-bb99-4be25b0e6f61","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7063107e-0ad5-4bbd-97ec-def7bdb05465","name":"Managing the status of the order - default","request":{"urlPathTemplate":"/orders/status","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"7063107e-0ad5-4bbd-97ec-def7bdb05465","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1d3a52e5-1eb4-4b21-9a58-9136f4d6cdda","name":"Create orders in batch - default","request":{"urlPathTemplate":"/orders/status/batch","method":"POST"},"response":{"status":202,"body":"{\n \"batchId\": 1.1,\n \"count\": 17655\n}","headers":{"Content-Type":"application/json"}},"uuid":"1d3a52e5-1eb4-4b21-9a58-9136f4d6cdda","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fd7eae8c-354e-4a43-8cea-0aa947291dea","name":"Return all your products - default","request":{"urlPathTemplate":"/products","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"products\": [\n {\n \"categories\": [\n \"279638835374\",\n \"279502848174\"\n ],\n \"createdAt\": \"2022-06-30T10:29:16.078Z\",\n \"id\": \"P11\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"isDeleted\": true,\n \"metaInfo\": {\n \"brand\": \"addidas\",\n \"description\": \"Shoes for sports\"\n },\n \"modifiedAt\": \"2022-06-30T10:29:16.078Z\",\n \"name\": \"Alpina Panoma Classic\",\n \"parentId\": \"parentId\",\n \"price\": 49.95,\n \"s3Original\": \"https://img-ecom.mailinblue.com/path-to-original/img.jpg\",\n \"s3ThumbAnalytics\": \"https://img-ecom.mailinblue.com/path-to-analytics/img.jpg\",\n \"s3ThumbEditor\": \"https://img-ecom.mailinblue.com/path-to-editor/img.jpg\",\n \"sku\": \"186622-9\",\n \"stock\": 100,\n \"url\": \"https://mydomain.com/products/alpina-panoma-classic\"\n },\n {\n \"categories\": [\n \"2d79638835374\",\n \"27d9502848174\"\n ],\n \"createdAt\": \"2022-06-30T10:29:16.078Z\",\n \"id\": \"P11\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"isDeleted\": true,\n \"metaInfo\": {\n \"brand\": \"addidas\",\n \"description\": \"Shoes for sports\"\n },\n \"modifiedAt\": \"2022-06-30T10:29:16.078Z\",\n \"name\": \"Alpina Panoma Classic2\",\n \"parentId\": \"parentId\",\n \"price\": 49.95,\n \"s3Original\": \"https://img-ecom.mailinblue.com/path-to-original/img.jpg\",\n \"s3ThumbAnalytics\": \"https://img-ecom.mailinblue.com/path-to-analytics/img.jpg\",\n \"s3ThumbEditor\": \"https://img-ecom.mailinblue.com/path-to-editor/img.jpg\",\n \"sku\": \"186622-9\",\n \"stock\": 350,\n \"url\": \"https://mydomain.com/products/alpina-panoma-classic2\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fd7eae8c-354e-4a43-8cea-0aa947291dea","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8a42981c-cdd8-404e-bdb0-edaac19b7e0c","name":"Create/Update a product - default","request":{"urlPathTemplate":"/products","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 21\n}","headers":{"Content-Type":"application/json"}},"uuid":"8a42981c-cdd8-404e-bdb0-edaac19b7e0c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5f2f0859-18a7-463c-bee7-4afb4ba092b0","name":"Create products in batch - default","request":{"urlPathTemplate":"/products/batch","method":"POST"},"response":{"status":201,"body":"{\n \"createdCount\": 2,\n \"updatedCount\": 7\n}","headers":{"Content-Type":"application/json"}},"uuid":"5f2f0859-18a7-463c-bee7-4afb4ba092b0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dcc8be20-9ebc-41b7-a9e0-2e9b9004756a","name":"Get a product's details - default","request":{"urlPathTemplate":"/products/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"categories\": [\n \"categories\"\n ],\n \"createdAt\": \"2017-05-12T12:30:00Z\",\n \"id\": \"P11\",\n \"imageUrl\": \"http://mydomain.com/product-absoulte-url/img.jpeg\",\n \"isDeleted\": true,\n \"metaInfo\": {\n \"brand\": \"addidas\",\n \"description\": \"Shoes for sports\"\n },\n \"modifiedAt\": \"2017-05-12T12:30:00Z\",\n \"name\": \"Iphone 11\",\n \"parentId\": \"parentId\",\n \"price\": 1.1,\n \"s3Original\": \"s3Original\",\n \"s3ThumbAnalytics\": \"s3ThumbAnalytics\",\n \"s3ThumbEditor\": \"s3ThumbEditor\",\n \"sku\": \"sku\",\n \"stock\": 100,\n \"url\": \"http://mydomain.com/product/electronics/product1\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"dcc8be20-9ebc-41b7-a9e0-2e9b9004756a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e82388ef-e4d4-4ac5-874c-2f802a602bed","name":"Create a product alert for a contact - default","request":{"urlPathTemplate":"/products/{id}/alerts/{type}","method":"POST","pathParameters":{"id":{"equalTo":"id"},"type":{"equalTo":"back_in_stock"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e82388ef-e4d4-4ac5-874c-2f802a602bed","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1afa5f6e-118c-4482-b744-5ef2a9799cf5","name":"Get all your coupon collections - default","request":{"urlPathTemplate":"/couponCollections","method":"GET"},"response":{"status":200,"body":"{\n \"createdAt\": \"2023-01-06T05:03:47Z\",\n \"defaultCoupon\": \"10 OFF\",\n \"expirationDate\": \"2024-01-01T00:00:00Z\",\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"name\": \"SummerPromotions\",\n \"remainingCoupons\": 5000,\n \"remainingCouponsAlert\": 5,\n \"remainingDaysAlert\": 5,\n \"totalCoupons\": 10000\n}","headers":{"Content-Type":"application/json"}},"uuid":"1afa5f6e-118c-4482-b744-5ef2a9799cf5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e6cacd7a-7ba8-4b0a-822c-0d6971f40073","name":"Create Π° coupon collection - default","request":{"urlPathTemplate":"/couponCollections","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e6cacd7a-7ba8-4b0a-822c-0d6971f40073","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"dff4a2fb-73ac-479f-ab4c-2c9110fd1537","name":"Get a coupon collection by id - default","request":{"urlPathTemplate":"/couponCollections/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2023-01-06T05:03:47Z\",\n \"defaultCoupon\": \"10 OFF\",\n \"expirationDate\": \"2024-01-01T00:00:00Z\",\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"name\": \"SummerPromotions\",\n \"remainingCoupons\": 5000,\n \"remainingCouponsAlert\": 5,\n \"remainingDaysAlert\": 5,\n \"totalCoupons\": 10000\n}","headers":{"Content-Type":"application/json"}},"uuid":"dff4a2fb-73ac-479f-ab4c-2c9110fd1537","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e28907c7-b011-4634-bb47-d32e210b128b","name":"Update a coupon collection by id - default","request":{"urlPathTemplate":"/couponCollections/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"defaultCoupon\": \"10 OFF\",\n \"id\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"name\": \"SummerPromotions\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e28907c7-b011-4634-bb47-d32e210b128b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eef10e8c-75d8-4adc-9fb0-8c2daeb31145","name":"Create coupons for a coupon collection - default","request":{"urlPathTemplate":"/coupons","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"eef10e8c-75d8-4adc-9fb0-8c2daeb31145","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"35f2e6da-c185-4829-b6ce-3bd466f76681","name":"Create a payment request - default","request":{"urlPathTemplate":"/payments/requests","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 122,\n \"url\": \"https://pay.brevo.com/payment/6d4ec0b2b48ef803df4103ve\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"35f2e6da-c185-4829-b6ce-3bd466f76681","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"173baf22-0f60-411a-b5e3-f68c427c3a5d","name":"Get payment request details - default","request":{"urlPathTemplate":"/payments/requests/{id}","method":"GET","pathParameters":{"id":{"equalTo":"050db7b0-9bb7-4c1e-9c68-5a8dace8c1dc"}}},"response":{"status":200,"body":"{\n \"cart\": {\n \"currency\": \"EUR\",\n \"specificAmount\": 1200\n },\n \"configuration\": {\n \"customSuccessUrl\": \"https://my-company.com/payment-success\"\n },\n \"contactId\": 43,\n \"notification\": {\n \"channel\": \"email\",\n \"text\": \"Please pay for your yoga class.\"\n },\n \"numberOfRemindersSent\": 5,\n \"reference\": \"Invoice #INV0001\\n\",\n \"status\": \"paid\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"173baf22-0f60-411a-b5e3-f68c427c3a5d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"87ef813d-0336-4656-a5b5-e0899662397f","name":"Delete a payment request. - default","request":{"urlPathTemplate":"/payments/requests/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"9ae7d68a-565c-4695-9381-d8fb3e3a14cc"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"87ef813d-0336-4656-a5b5-e0899662397f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"aed029ff-9be1-4acb-9dcf-a4c3e218a560","name":"Create an event - default","request":{"urlPathTemplate":"/events","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"aed029ff-9be1-4acb-9dcf-a4c3e218a560","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"09aa7143-15a9-433c-a1e0-3444863bbf64","name":"Get the list of all the events for the received emails. - default","request":{"urlPathTemplate":"/inbound/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"date\": \"2017-03-11T12:30:00Z\",\n \"recipient\": \"alexa@example.com\",\n \"sender\": \"john@example.com\",\n \"uuid\": \"1a825d56-029b-4a41-b8e4-1a825d56\"\n },\n {\n \"date\": \"2017-03-12T12:30:00Z\",\n \"recipient\": \"bob@example.com\",\n \"sender\": \"alice@example.com\",\n \"uuid\": \"1a825d56-029b-4a41-b8e4-61670463431b\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"09aa7143-15a9-433c-a1e0-3444863bbf64","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"ee4248db-9736-4af1-a32a-5a7de6f5328a","name":"Fetch all events history for one particular received email. - default","request":{"urlPathTemplate":"/inbound/events/{uuid}","method":"GET","pathParameters":{"uuid":{"equalTo":"uuid"}}},"response":{"status":200,"body":"{\n \"attachments\": [\n {\n \"contentLength\": 12345,\n \"contentType\": \"application/pdf\",\n \"name\": \"invoice.pdf\"\n }\n ],\n \"deliveredAt\": \"2017-03-12T12:31:00Z\",\n \"logs\": [\n {\n \"date\": \"2017-03-12T12:30:00Z\",\n \"type\": \"received\"\n },\n {\n \"date\": \"2017-03-12T12:30:04Z\",\n \"type\": \"webhookFailed\"\n },\n {\n \"date\": \"2017-03-12T12:31:04Z\",\n \"type\": \"webhookDelivered\"\n }\n ],\n \"messageId\": \"\",\n \"receivedAt\": \"2017-03-12T12:30:00Z\",\n \"recipient\": \"bob@example.com\",\n \"sender\": \"alice@example.com\",\n \"subject\": \"Re: Question about your API\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"ee4248db-9736-4af1-a32a-5a7de6f5328a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3426b7cd-c7c6-4cd0-8359-916c1482c4a3","name":"Retrieve inbound attachment with download token. - default","request":{"urlPathTemplate":"/inbound/attachments/{downloadToken}","method":"GET","pathParameters":{"downloadToken":{"equalTo":"downloadToken"}}},"response":{"status":200,"body":"{\n \"key\": \"value\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"3426b7cd-c7c6-4cd0-8359-916c1482c4a3","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b8273ac4-3d1a-4b9a-b003-bb49ef16337f","name":"Get Active Balances API - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/active-balance","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"b8273ac4-3d1a-4b9a-b003-bb49ef16337f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7ed4ff5a-868f-45ef-a95a-550b62f69d5a","name":"Get balance definition list - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"7ed4ff5a-868f-45ef-a95a-550b62f69d5a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9db15f6f-dd09-4033-bff7-9d94ef6ae471","name":"Create balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"9db15f6f-dd09-4033-bff7-9d94ef6ae471","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5171ff4c-8ab1-4886-96b9-72845239dcb2","name":"Get balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"{\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"5171ff4c-8ab1-4886-96b9-72845239dcb2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1da76c71-d209-4641-9094-43a7214838ef","name":"Update balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"{\n \"balanceAvailabilityDurationModifier\": \"startOfPeriod\",\n \"balanceAvailabilityDurationUnit\": \"balanceAvailabilityDurationUnit\",\n \"balanceAvailabilityDurationValue\": 1,\n \"balanceExpirationDate\": \"2024-01-15T09:30:00Z\",\n \"balanceOptionAmountOvertakingStrategy\": \"balanceOptionAmountOvertakingStrategy\",\n \"balanceOptionCreditRounding\": \"balanceOptionCreditRounding\",\n \"balanceOptionDebitRounding\": \"balanceOptionDebitRounding\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"deletedAt\": \"deletedAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"imageRef\": \"imageRef\",\n \"maxAmount\": 1.1,\n \"maxCreditAmountLimit\": 1.1,\n \"maxDebitAmountLimit\": 1.1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"minAmount\": 1.1,\n \"name\": \"name\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1da76c71-d209-4641-9094-43a7214838ef","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a3817b26-f6c9-4900-86c4-6d4869b41b38","name":"Delete balance definition - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a3817b26-f6c9-4900-86c4-6d4869b41b38","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d2118a4-5218-46f1-8513-ef75d832d7d5","name":"Create balance limits - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d2118a4-5218-46f1-8513-ef75d832d7d5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5def443d-7ef0-4c5c-99d3-9e38a21ed142","name":"Get balance limits - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"},"blid":{"equalTo":"blid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"5def443d-7ef0-4c5c-99d3-9e38a21ed142","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3c24feb3-061c-4954-a12f-81100122b866","name":"Updates balance limit - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"},"blid":{"equalTo":"blid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"constraintType\": \"constraintType\",\n \"createdAt\": \"createdAt\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"id\": \"id\",\n \"slidingSchedule\": true,\n \"transactionType\": \"transactionType\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"3c24feb3-061c-4954-a12f-81100122b866","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"60e7789f-ecdc-4330-96f5-426c8865aa02","name":"Delete balance limit - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/balance-definitions/{bdid}/limits/{blid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"bdid":{"equalTo":"bdid"},"blid":{"equalTo":"blid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"60e7789f-ecdc-4330-96f5-426c8865aa02","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a00ea68f-14e1-4bbc-a3ad-1f4c555dbd92","name":"Get balance list - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/contact-balances","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"balances\": [\n {\n \"contactId\": 1,\n \"loyaltySubscriptionId\": \"loyaltySubscriptionId\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1.1\n }\n ],\n \"count\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"a00ea68f-14e1-4bbc-a3ad-1f4c555dbd92","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"24af1e00-9fca-4515-89c5-bce7048b3f2e","name":"Create balance order - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/create-order","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"dueAt\": \"dueAt\",\n \"expiresAt\": \"expiresAt\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"processedAt\": \"processedAt\",\n \"transactionid\": \"transactionid\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"24af1e00-9fca-4515-89c5-bce7048b3f2e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"bd77b0ff-3379-4930-aa93-f8cc25163bee","name":"Get subscription balances - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/subscriptions/{cid}/balances","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"cid"}}},"response":{"status":200,"body":"{\n \"balance\": [\n {\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"value\": 1.1\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"bd77b0ff-3379-4930-aa93-f8cc25163bee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"06abbd3e-aec8-48f0-9c90-49887599e5ac","name":"Create subscription balances - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/subscriptions/{cid}/balances","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"cid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"consumedAt\": \"consumedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"expiresAt\": \"expiresAt\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"organizationId\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"06abbd3e-aec8-48f0-9c90-49887599e5ac","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d806b377-c3f2-46e1-af10-826fc8cb7a77","name":"Get Transaction History API - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transaction-history","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"contactId\": 1,\n \"count\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"transactionHistory\": [\n {\n \"amount\": 1.1,\n \"balanceExpirationDate\": \"balanceExpirationDate\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"createdAt\": \"createdAt\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"d806b377-c3f2-46e1-af10-826fc8cb7a77","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"01dd65f2-fc30-4f9a-94e7-cf908b0c0b6a","name":"Create new transaction - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transactions","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"eventTime\": \"eventTime\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"01dd65f2-fc30-4f9a-94e7-cf908b0c0b6a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"bd42f484-63b7-431c-9d4b-a149ff9cd0b8","name":"Cancel transaction - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transactions/{tid}/cancel","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"eventTime\": \"eventTime\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"bd42f484-63b7-431c-9d4b-a149ff9cd0b8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fbed8bbf-cc97-48fb-a7f6-e56e37f2cf2e","name":"Complete transaction - default","request":{"urlPathTemplate":"/loyalty/balance/programs/{pid}/transactions/{tid}/complete","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"amount\": 1.1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"cancelledAt\": \"cancelledAt\",\n \"completedAt\": \"completedAt\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"eventTime\": \"eventTime\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"rejectedAt\",\n \"status\": \"status\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"fbed8bbf-cc97-48fb-a7f6-e56e37f2cf2e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"26205d6c-548c-4928-8845-8eb6528a066d","name":"Get loyalty program list - default","request":{"urlPathTemplate":"/loyalty/config/programs","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"26205d6c-548c-4928-8845-8eb6528a066d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"58d70d75-ea78-49d2-a9d6-beab3075e797","name":"Create loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs","method":"POST"},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"58d70d75-ea78-49d2-a9d6-beab3075e797","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c0fa09f4-d2b6-46f5-9560-abd8eb19c934","name":"Get loyalty program Info - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c0fa09f4-d2b6-46f5-9560-abd8eb19c934","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"861e512a-8f3c-4e67-9519-b050d07984c6","name":"Update loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"861e512a-8f3c-4e67-9519-b050d07984c6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a87fbb4c-71e6-4806-9622-174c92be89d1","name":"Delete Loyalty Program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a87fbb4c-71e6-4806-9622-174c92be89d1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8a2689f4-70a0-4e02-8ce4-3c55e07bc708","name":"Partially update loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}","method":"PATCH","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"codeCount\": 1,\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"documentId\": \"documentId\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"state\": \"inactive\",\n \"subscriptionGeneratorId\": \"subscriptionGeneratorId\",\n \"subscriptionPoolId\": \"subscriptionPoolId\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8a2689f4-70a0-4e02-8ce4-3c55e07bc708","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d32199cf-9ffa-4318-a330-2e9fda3da2d2","name":"Get Subscription Data - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/account-info","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"balance\": {\n \"balances\": [\n {}\n ],\n \"contactId\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\"\n },\n \"members\": [\n {\n \"createdAt\": \"createdAt\",\n \"memberContactId\": 1,\n \"updatedAt\": \"updatedAt\"\n }\n ],\n \"reward\": [\n {\n \"code\": \"code\",\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"updatedAt\"\n }\n ],\n \"tier\": [\n {\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"groupId\": \"groupId\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"tierId\": \"tierId\",\n \"updatedAt\": \"updatedAt\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"d32199cf-9ffa-4318-a330-2e9fda3da2d2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0878ece4-9fe9-491a-9a7c-daaf7cf9c341","name":"Delete subscription - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/contact/{cid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"1"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"0878ece4-9fe9-491a-9a7c-daaf7cf9c341","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e628ecea-6ac2-4237-bf4e-d3e911f50954","name":"Publish loyalty program - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/publish","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e628ecea-6ac2-4237-bf4e-d3e911f50954","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c63d1aae-db4f-4b4c-b82f-19e95683e037","name":"Create subscription member - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/subscription-members","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"createdAt\",\n \"memberContactIds\": [\n 1\n ],\n \"organizationId\": 1,\n \"ownerContactId\": 1,\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c63d1aae-db4f-4b4c-b82f-19e95683e037","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"efc3a783-b09a-41eb-8c6f-6f3f03271ef4","name":"Delete subscription member - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/subscription-members","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"efc3a783-b09a-41eb-8c6f-6f3f03271ef4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c73cc6cc-b51b-4e8a-ae72-3446029b9ec5","name":"Create subscription - default","request":{"urlPathTemplate":"/loyalty/config/programs/{pid}/subscriptions","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"contactId\": 1,\n \"createdAt\": \"createdAt\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"loyaltySubscriptionId\": \"loyaltySubscriptionId\",\n \"organizationId\": 1,\n \"updatedAt\": \"updatedAt\",\n \"versionId\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"c73cc6cc-b51b-4e8a-ae72-3446029b9ec5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"da280697-1454-4e11-996a-89c499cf8d7f","name":"Get code count - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/code-pools/{cpid}/codes-count","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"cpid":{"equalTo":"cpid"}}},"response":{"status":200,"body":"{\n \"count\": 1000000\n}","headers":{"Content-Type":"application/json"}},"uuid":"da280697-1454-4e11-996a-89c499cf8d7f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d324fa9-3782-4213-ab50-8574dc117f03","name":"Get Reward Page API - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/offers","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"endDate\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"publicImage\": \"publicImage\",\n \"startDate\": \"2024-01-15T09:30:00Z\",\n \"state\": \"state\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"totalCount\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d324fa9-3782-4213-ab50-8574dc117f03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e24ddc18-7dbb-4302-828c-d6e53ebb4a34","name":"Create a reward - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/offers","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"publicDescription\": \"publicDescription\",\n \"publicImage\": \"publicImage\",\n \"publicName\": \"publicName\",\n \"updatedAt\": \"updatedAt\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e24ddc18-7dbb-4302-828c-d6e53ebb4a34","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"661c8611-a50c-4e77-aad2-b152b4a15e63","name":"Create a voucher - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/attribute","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"code\": \"code\",\n \"consumedAt\": \"consumedAt\",\n \"contactId\": 1000000,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"expirationDate\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"value\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"661c8611-a50c-4e77-aad2-b152b4a15e63","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"aa8692b0-126d-488d-b643-8fe0de2f8405","name":"Create redeem voucher request - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/redeem","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"cancelledAt\": \"2024-01-15T09:30:00Z\",\n \"completedAt\": \"2024-01-15T09:30:00Z\",\n \"contactId\": 1000000,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"debitTransactionId\": \"debitTransactionId\",\n \"expiresAt\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"2024-01-15T09:30:00Z\",\n \"rewardAttributionId\": \"rewardAttributionId\",\n \"status\": \"status\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"aa8692b0-126d-488d-b643-8fe0de2f8405","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"99e6b97f-e193-4c85-b833-07efab4f9b5b","name":"Complete redeem voucher request - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/redeem/{tid}/complete","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"cancelledAt\": \"2024-01-15T09:30:00Z\",\n \"completedAt\": \"2024-01-15T09:30:00Z\",\n \"contactId\": 1000000,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"debitTransactionId\": \"debitTransactionId\",\n \"expiresAt\": \"2024-01-15T09:30:00Z\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rejectReason\": \"rejectReason\",\n \"rejectedAt\": \"2024-01-15T09:30:00Z\",\n \"rewardAttributionId\": \"rewardAttributionId\",\n \"status\": \"status\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"99e6b97f-e193-4c85-b833-07efab4f9b5b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"919890cf-9d52-46fe-87bc-03565bdc4697","name":"Revoke vouchers - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/revoke","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"919890cf-9d52-46fe-87bc-03565bdc4697","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"53d2fcd5-6b39-4fa3-a257-21f60d24efc5","name":"Validate a reward - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/validate","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"authorize\": true\n}","headers":{"Content-Type":"application/json"}},"uuid":"53d2fcd5-6b39-4fa3-a257-21f60d24efc5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"66e13a60-2e6c-4f3b-9ff7-fc1cdcc147b8","name":"Get reward information - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/rewards/{rid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"rid":{"equalTo":"rid"}}},"response":{"status":200,"body":"{\n \"attributionPerConsumer\": 1,\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"code\": \"code\",\n \"codeCount\": 1000000,\n \"codeGeneratorId\": \"codeGeneratorId\",\n \"codePoolId\": \"codePoolId\",\n \"config\": \"config\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"disabledAt\": \"2024-01-15T09:30:00Z\",\n \"endDate\": \"2024-01-15T09:30:00Z\",\n \"expirationDate\": \"2024-01-15T09:30:00Z\",\n \"expirationModifier\": \"startOfPeriod\",\n \"expirationUnit\": \"expirationUnit\",\n \"expirationValue\": 1,\n \"generator\": {\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"id\": \"id\",\n \"name\": \"name\",\n \"pattern\": \"pattern\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n },\n \"id\": \"id\",\n \"limits\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"durationUnit\": \"durationUnit\",\n \"durationValue\": 1,\n \"limitValue\": 1,\n \"rewardLimitId\": \"rewardLimitId\",\n \"slidingSchedule\": true,\n \"type\": \"type\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"products\": [\n {\n \"createdAt\": \"createdAt\",\n \"imageRef\": \"imageRef\",\n \"productId\": \"productId\",\n \"value\": \"value\"\n }\n ],\n \"publicDescription\": \"publicDescription\",\n \"publicImage\": \"publicImage\",\n \"publicName\": \"publicName\",\n \"redeemPerConsumer\": 1,\n \"redeemRules\": [\n \"redeemRules\"\n ],\n \"rewardConfigs\": {\n \"attribution\": \"attribution\",\n \"code\": \"code\",\n \"value\": \"value\"\n },\n \"rule\": {\n \"condition\": {\n \"op\": \"op\"\n },\n \"createdAt\": \"createdAt\",\n \"description\": \"description\",\n \"event\": {\n \"name\": \"name\",\n \"source\": \"source\"\n },\n \"isInternal\": true,\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"loyaltyVersionId\": 1,\n \"meta\": {\n \"key\": \"value\"\n },\n \"name\": \"name\",\n \"results\": [\n {}\n ],\n \"ruleId\": \"ruleId\",\n \"ruleType\": \"ruleType\",\n \"updatedAt\": \"updatedAt\"\n },\n \"startDate\": \"2024-01-15T09:30:00Z\",\n \"subtractBalanceDefinitionId\": \"subtractBalanceDefinitionId\",\n \"subtractBalanceStrategy\": \"subtractBalanceStrategy\",\n \"subtractBalanceValue\": 1,\n \"subtractTotalBalance\": true,\n \"totalAttribution\": 1,\n \"totalRedeem\": 1,\n \"triggerId\": \"triggerId\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1.1,\n \"valueType\": \"valueType\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"66e13a60-2e6c-4f3b-9ff7-fc1cdcc147b8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"950e340e-ab9c-42c4-8c85-9ea1bd43113d","name":"Get voucher for a contact - default","request":{"urlPathTemplate":"/loyalty/offer/programs/{pid}/vouchers","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"contactId\": 1000000,\n \"contactRewards\": [\n {\n \"code\": \"code\",\n \"consumedAt\": \"consumedAt\",\n \"createdAt\": \"createdAt\",\n \"expirationDate\": \"expirationDate\",\n \"id\": \"id\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"rewardId\": \"rewardId\",\n \"unit\": \"unit\",\n \"updatedAt\": \"updatedAt\",\n \"value\": 1.1\n }\n ],\n \"count\": 1,\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"loyaltySubscriptionId\": \"loyaltySubscriptionId\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"950e340e-ab9c-42c4-8c85-9ea1bd43113d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f3e1d26e-fbde-4b7e-afe4-fabb4960ff71","name":"Assign a tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/contacts/{cid}/tiers/{tid}","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"cid":{"equalTo":"cid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"contactId\": 1,\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"meta\": {\n \"key\": \"value\"\n },\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f3e1d26e-fbde-4b7e-afe4-fabb4960ff71","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e6fc762d-7440-4454-beb1-ff71f4a9080e","name":"List tier groups - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"e6fc762d-7440-4454-beb1-ff71f4a9080e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d33f2b3b-2dd3-4911-8200-e4b4ef965933","name":"Create a tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups","method":"POST","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"d33f2b3b-2dd3-4911-8200-e4b4ef965933","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"562fecbb-8cc8-46ae-b519-3fd2825bb107","name":"Get tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}","method":"GET","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"562fecbb-8cc8-46ae-b519-3fd2825bb107","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67f29817-d31a-4186-b787-9277e465e139","name":"Update tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"downgradeStrategy\": \"real_time\",\n \"id\": \"id\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierOrder\": [\n \"tierOrder\"\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\",\n \"upgradeStrategy\": \"real_time\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"67f29817-d31a-4186-b787-9277e465e139","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a9e14ece-a957-40e8-b723-4b89904599dd","name":"Delete tier group - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a9e14ece-a957-40e8-b723-4b89904599dd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d2b435bf-764a-46a6-a860-04672e2611c0","name":"Create a tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tier-groups/{gid}/tiers","method":"POST","pathParameters":{"pid":{"equalTo":"pid"},"gid":{"equalTo":"gid"}}},"response":{"status":200,"body":"{\n \"accessConditions\": [\n {\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"minimumValue\": 1,\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"imageRef\": \"imageRef\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierId\": \"tierId\",\n \"tierRewards\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"d2b435bf-764a-46a6-a860-04672e2611c0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e335b644-b3a8-4e92-9222-a80f9a8dd3ab","name":"List tiers - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tiers","method":"GET","pathParameters":{"pid":{"equalTo":"pid"}}},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"accessConditions\": [\n {}\n ],\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"imageRef\": \"imageRef\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierId\": \"tierId\",\n \"tierRewards\": [\n {}\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"e335b644-b3a8-4e92-9222-a80f9a8dd3ab","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c299567a-50ff-4db3-a919-280c95c9de65","name":"Update tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tiers/{tid}","method":"PUT","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"{\n \"accessConditions\": [\n {\n \"balanceDefinitionId\": \"balanceDefinitionId\",\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"minimumValue\": 1,\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"groupId\": \"groupId\",\n \"imageRef\": \"imageRef\",\n \"loyaltyProgramId\": \"loyaltyProgramId\",\n \"name\": \"name\",\n \"tierId\": \"tierId\",\n \"tierRewards\": [\n {\n \"createdAt\": \"2024-01-15T09:30:00Z\",\n \"rewardId\": \"rewardId\",\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n }\n ],\n \"updatedAt\": \"2024-01-15T09:30:00Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c299567a-50ff-4db3-a919-280c95c9de65","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"05e6afcc-fb74-4457-a108-1dc6a10a5be7","name":"Delete tier - default","request":{"urlPathTemplate":"/loyalty/tier/programs/{pid}/tiers/{tid}","method":"DELETE","pathParameters":{"pid":{"equalTo":"pid"},"tid":{"equalTo":"tid"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"05e6afcc-fb74-4457-a108-1dc6a10a5be7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"cec8c14d-adf6-497f-95ee-c48ab1d6503d","name":"Return all your created email campaigns - default","request":{"urlPathTemplate":"/emailCampaigns","method":"GET"},"response":{"status":200,"body":"{\n \"campaigns\": [\n {\n \"abTesting\": true,\n \"id\": 12,\n \"name\": \"EN - Sales Summer 2017\",\n \"previewText\": \"Don't miss the sale!\",\n \"scheduledAt\": \"2017-06-01T12:30:00Z\",\n \"sendAtBestTime\": true,\n \"splitRule\": 25,\n \"status\": \"sent\",\n \"subject\": \"20% OFF for 2017 Summer Sales\",\n \"subjectA\": \"Discover the New Collection!\",\n \"subjectB\": \"Want to discover the New Collection?\",\n \"type\": \"classic\",\n \"winnerCriteria\": \"open\",\n \"winnerDelay\": 50,\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"footer\": \"[DEFAULT_FOOTER]\",\n \"header\": \"[DEFAULT_HEADER]\",\n \"htmlContent\": \"This is my HTML Content\",\n \"inlineImageActivation\": true,\n \"mirrorActive\": true,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"recurring\": false,\n \"replyTo\": \"replyto@domain.com\",\n \"returnBounce\": 5,\n \"sender\": {\n \"email\": \"marketing@mycompany.com\",\n \"id\": 26,\n \"name\": \"Marketing\"\n },\n \"sentDate\": \"2018-12-01T16:30:00Z\",\n \"shareLink\": \"http://example.com/fhsgccc.html?t=9865448900\",\n \"tag\": \"Newsletter\",\n \"testSent\": true,\n \"toField\": \"{FNAME} {LNAME}\",\n \"utmCampaignValue\": \"myutm\",\n \"utmIDActive\": true,\n \"utmMedium\": \"EMAIL\",\n \"utmSource\": \"Brevo\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 5\n ]\n },\n \"statistics\": {\n \"campaignStats\": [\n {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 5,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n ],\n \"globalStats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"linksStats\": {},\n \"mirrorClick\": 120,\n \"remaining\": 1000,\n \"statsByBrowser\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n },\n \"statsByDevice\": {},\n \"statsByDomain\": {\n \"hotmail.co.uk\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2720,\n \"complaints\": 5,\n \"deferred\": 30,\n \"delivered\": 117056,\n \"estimatedViews\": 560,\n \"hardBounces\": 0,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 117055,\n \"softBounces\": 111,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 1970,\n \"uniqueViews\": 21111,\n \"unsubscriptions\": 105,\n \"viewed\": 35251\n },\n \"yahoo.com\": {\n \"appleMppOpens\": 10,\n \"clickers\": 533,\n \"complaints\": 0,\n \"deferred\": 30,\n \"delivered\": 25596,\n \"estimatedViews\": 560,\n \"hardBounces\": 0,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 25601,\n \"softBounces\": 5,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 298,\n \"uniqueViews\": 3527,\n \"unsubscriptions\": 17,\n \"viewed\": 5255\n }\n }\n }\n },\n {\n \"abTesting\": true,\n \"id\": 22,\n \"name\": \"Weekly - 1\",\n \"previewText\": \"your weekly newsletter!\",\n \"scheduledAt\": \"\",\n \"sendAtBestTime\": true,\n \"splitRule\": 25,\n \"status\": \"draft\",\n \"subject\": \"Week 1 - Newsletter\",\n \"subjectA\": \"Discover the New Collection!\",\n \"subjectB\": \"Want to discover the New Collection?\",\n \"type\": \"classic\",\n \"winnerCriteria\": \"open\",\n \"winnerDelay\": 50,\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"footer\": \"[DEFAULT_FOOTER]\",\n \"header\": \"[DEFAULT_HEADER]\",\n \"htmlContent\": \"This is my HTML Content\",\n \"inlineImageActivation\": true,\n \"mirrorActive\": true,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"recurring\": false,\n \"replyTo\": \"replyto@domain.com\",\n \"returnBounce\": 5,\n \"sender\": {\n \"email\": \"newsletter@mycompany.com\",\n \"id\": 26,\n \"name\": \"Newsletter\"\n },\n \"sentDate\": \"2018-12-01T16:30:00Z\",\n \"shareLink\": \"http://example.com/fhsgccc.html?t=9865448900\",\n \"tag\": \"Newsletter\",\n \"testSent\": false,\n \"toField\": \"{FNAME} {LNAME}\",\n \"utmCampaignValue\": \"myutm\",\n \"utmIDActive\": true,\n \"utmMedium\": \"EMAIL\",\n \"utmSource\": \"Brevo\",\n \"recipients\": {\n \"exclusionLists\": [\n 45\n ],\n \"lists\": [\n 10\n ]\n },\n \"statistics\": {\n \"campaignStats\": [\n {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 10,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n ],\n \"globalStats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.42,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"linksStats\": {},\n \"mirrorClick\": 120,\n \"remaining\": 1000,\n \"statsByBrowser\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n },\n \"statsByDevice\": {},\n \"statsByDomain\": {\n \"aol\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"gmail\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n }\n }\n }\n ],\n \"count\": 2\n}","headers":{"Content-Type":"application/json"}},"uuid":"cec8c14d-adf6-497f-95ee-c48ab1d6503d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"3d7c577e-d169-438f-b91c-d1f90d441dee","name":"Create an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d7c577e-d169-438f-b91c-d1f90d441dee","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b6e00948-fca2-4a11-addd-d16045c94c90","name":"Upload an image to your account's image gallery - default","request":{"urlPathTemplate":"/emailCampaigns/images","method":"POST"},"response":{"status":201,"body":"{\n \"url\": \"https://img.mailinblue.com/100000/images/rnb/original/62casdase8wewq9df1c2f27c.jpeg\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"b6e00948-fca2-4a11-addd-d16045c94c90","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"da8f0483-4951-4e2d-a495-15906071e018","name":"Get an email campaign report - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"abTesting\": true,\n \"id\": 22,\n \"name\": \"Weekly - 1\",\n \"previewText\": \"your weekly newsletter\",\n \"scheduledAt\": \"2017-09-22T12:30:00Z\",\n \"sendAtBestTime\": true,\n \"splitRule\": 25,\n \"status\": \"draft\",\n \"subject\": \"Week 1 - Newsletter\",\n \"subjectA\": \"Discover the New Collection!\",\n \"subjectB\": \"Want to discover the New Collection?\",\n \"type\": \"classic\",\n \"winnerCriteria\": \"open\",\n \"winnerDelay\": 50,\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"footer\": \"[DEFAULT_FOOTER]\",\n \"header\": \"[DEFAULT_HEADER]\",\n \"htmlContent\": \"This is my HTML Content\",\n \"inlineImageActivation\": true,\n \"mirrorActive\": true,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"recurring\": false,\n \"replyTo\": \"replyto@domain.com\",\n \"returnBounce\": 5,\n \"sender\": {\n \"email\": \"newsletter@mycompany.com\",\n \"id\": 26,\n \"name\": \"Newsletter\"\n },\n \"sentDate\": \"2018-12-01T16:30:00Z\",\n \"shareLink\": \"http://dhh.brevo.com/fhsgccc.html?t=9865448900\",\n \"tag\": \"Newsletter\",\n \"testSent\": false,\n \"toField\": \"{FNAME} {LNAME}\",\n \"utmCampaignValue\": \"myutm\",\n \"utmIDActive\": true,\n \"utmMedium\": \"EMAIL\",\n \"utmSource\": \"Brevo\",\n \"recipients\": {\n \"exclusionLists\": [\n 45\n ],\n \"lists\": [\n 22\n ]\n },\n \"statistics\": {\n \"campaignStats\": [\n {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 22,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n ],\n \"globalStats\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 24.59,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n },\n \"linksStats\": {},\n \"mirrorClick\": 120,\n \"remaining\": 1000,\n \"statsByBrowser\": {\n \"internetExplorer\": {\n \"clickers\": 0,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n },\n \"safari\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n },\n \"thunderbird\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n }\n },\n \"statsByDevice\": {\n \"desktop\": {\n \"mac\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 1,\n \"viewed\": 2\n }\n },\n \"mobile\": {\n \"androidMobile\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 1\n },\n \"iPhone\": {\n \"clickers\": 1,\n \"uniqueClicks\": 0,\n \"uniqueViews\": 0,\n \"viewed\": 2\n }\n },\n \"tablet\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n },\n \"unknown\": {\n \"key\": {\n \"clickers\": 2665,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"viewed\": 8999\n }\n }\n },\n \"statsByDomain\": {\n \"gmail\": {\n \"appleMppOpens\": 10,\n \"clickers\": 2665,\n \"complaints\": 1,\n \"deferred\": 30,\n \"delivered\": 19765,\n \"estimatedViews\": 560,\n \"hardBounces\": 87,\n \"listId\": 2,\n \"opensRate\": 29.54,\n \"returnBounce\": 5,\n \"sent\": 19887,\n \"softBounces\": 100,\n \"trackableViews\": 5661,\n \"trackableViewsRate\": 23.45,\n \"uniqueClicks\": 2300,\n \"uniqueViews\": 7779,\n \"unsubscriptions\": 2,\n \"viewed\": 8999\n }\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"da8f0483-4951-4e2d-a495-15906071e018","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"27d7a953-713c-4dcc-a03d-a5fcd5fbc134","name":"Update an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"27d7a953-713c-4dcc-a03d-a5fcd5fbc134","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"28dbcc0e-eed7-4b02-a7d8-2aab0a25c731","name":"Delete an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}","method":"DELETE","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"28dbcc0e-eed7-4b02-a7d8-2aab0a25c731","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"969348eb-29d3-48ab-82d1-c46a8412178e","name":"Get an A/B test email campaign results - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/abTestCampaignResult","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"clickRate\": \"50%\",\n \"clickedLinks\": {\n \"Version A\": [\n {\n \"clickRate\": \"0%\",\n \"clicksCount\": 0,\n \"link\": \"https://google.com\"\n },\n {\n \"clickRate\": \"0%\",\n \"clicksCount\": 0,\n \"link\": \"https://youtube.com\"\n }\n ],\n \"Version B\": [\n {\n \"clickRate\": \"40%\",\n \"clicksCount\": 2,\n \"link\": \"http://www.github.com\"\n },\n {\n \"clickRate\": \"60%\",\n \"clicksCount\": 3,\n \"link\": \"http://www.stackoverflow.com\"\n }\n ]\n },\n \"openRate\": \"100%\",\n \"statistics\": {\n \"clicks\": {\n \"Version A\": \"0%\",\n \"Version B\": \"50%\"\n },\n \"complaints\": {\n \"Version A\": \"0%\",\n \"Version B\": \"0%\"\n },\n \"hardBounces\": {\n \"Version A\": \"0%\",\n \"Version B\": \"0%\"\n },\n \"openers\": {\n \"Version A\": \"20%\",\n \"Version B\": \"100%\"\n },\n \"softBounces\": {\n \"Version A\": \"0%\",\n \"Version B\": \"0%\"\n },\n \"unsubscribed\": {\n \"Version A\": \"20%\",\n \"Version B\": \"0%\"\n }\n },\n \"winningCriteria\": \"Click\",\n \"winningSubjectLine\": \"Subject Line A\",\n \"winningVersion\": \"B\",\n \"winningVersionRate\": \"0%\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"969348eb-29d3-48ab-82d1-c46a8412178e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"93e3be61-a737-4896-a697-7417b837b571","name":"Export the recipients of an email campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/exportRecipients","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"93e3be61-a737-4896-a697-7417b837b571","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b0b17959-d743-449c-8bdd-ab28a42870cc","name":"Send an email campaign immediately, based on campaignId - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sendNow","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b0b17959-d743-449c-8bdd-ab28a42870cc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"57eba48c-9a52-4e90-a12c-fa89a469f035","name":"Send the report of a campaign - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sendReport","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"57eba48c-9a52-4e90-a12c-fa89a469f035","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fc668b8b-10da-4f83-ae38-5004f0a64ae7","name":"Send an email campaign to your test list - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sendTest","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"fc668b8b-10da-4f83-ae38-5004f0a64ae7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6bc6114e-fc20-4aa2-ba22-7e7fe7f95244","name":"Get a shared template url - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/sharedUrl","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"sharedUrl\": \"https://my.brevo.com/pt2YU7R5W_guXlowgumy_VX4pFsKu._zd0Gjj96x1_GMmzc1Qps5ZIpj6nx-\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"6bc6114e-fc20-4aa2-ba22-7e7fe7f95244","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8d661344-163b-4798-a243-ba10bd08cbe9","name":"Update an email campaign status - default","request":{"urlPathTemplate":"/emailCampaigns/{campaignId}/status","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8d661344-163b-4798-a243-ba10bd08cbe9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ffedd57d-0198-49a4-9112-ce7ae8751ebc","name":"Returns the information for all your created SMS campaigns - default","request":{"urlPathTemplate":"/smsCampaigns","method":"GET"},"response":{"status":200,"body":"{\n \"campaigns\": [\n {\n \"content\": \"Visit our Store and get some discount !\",\n \"createdAt\": \"2017-06-01T12:30:00Z\",\n \"id\": 2,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"PROMO CODE\",\n \"scheduledAt\": \"2017-06-01T12:30:00Z\",\n \"sender\": \"MyCompany\",\n \"status\": \"sent\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 21\n ]\n },\n \"statistics\": {\n \"answered\": 2,\n \"delivered\": 2987,\n \"hardBounces\": 1,\n \"processing\": 0,\n \"sent\": 3000,\n \"softBounces\": 3,\n \"unsubscriptions\": 3\n }\n },\n {\n \"content\": \"Summer Sale is starting tomorrow. Get extra 10% with this code:SUM17\",\n \"createdAt\": \"2017-06-01T12:30:00Z\",\n \"id\": 10,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"SUMMER SALE\",\n \"scheduledAt\": \"2017-08-04T12:30:00Z\",\n \"sender\": \"MyCompany\",\n \"status\": \"draft\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 21\n ]\n },\n \"statistics\": {\n \"answered\": 2,\n \"delivered\": 2987,\n \"hardBounces\": 1,\n \"processing\": 0,\n \"sent\": 3000,\n \"softBounces\": 3,\n \"unsubscriptions\": 3\n }\n }\n ],\n \"count\": 12\n}","headers":{"Content-Type":"application/json"}},"uuid":"ffedd57d-0198-49a4-9112-ce7ae8751ebc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"ff5b73cc-83d1-4d1c-9038-f01bc11a604e","name":"Creates an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"ff5b73cc-83d1-4d1c-9038-f01bc11a604e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"9ff5c02a-8b74-486b-aca9-7ac003b1838c","name":"Get an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"content\": \"Visit our Store and get some discount !\",\n \"createdAt\": \"2017-06-01T12:30:00Z\",\n \"id\": 2,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"PROMO CODE\",\n \"scheduledAt\": \"2017-06-01T12:30:00Z\",\n \"sender\": \"MyCompany\",\n \"status\": \"sent\",\n \"recipients\": {\n \"exclusionLists\": [\n 13\n ],\n \"lists\": [\n 21\n ]\n },\n \"statistics\": {\n \"answered\": 2,\n \"delivered\": 2987,\n \"hardBounces\": 1,\n \"processing\": 0,\n \"sent\": 3000,\n \"softBounces\": 3,\n \"unsubscriptions\": 3\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"9ff5c02a-8b74-486b-aca9-7ac003b1838c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"828e0b76-55ec-4b20-83fd-ff0d9c6a807f","name":"Update an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"828e0b76-55ec-4b20-83fd-ff0d9c6a807f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0938f276-c211-4150-91ac-9ea5e3ddf7fe","name":"Delete an SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}","method":"DELETE","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"0938f276-c211-4150-91ac-9ea5e3ddf7fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"daaeea82-c583-43fb-b4c7-a6bbc940fc47","name":"Export an SMS campaign's recipients - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/exportRecipients","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":202,"body":"{\n \"processId\": 78\n}","headers":{"Content-Type":"application/json"}},"uuid":"daaeea82-c583-43fb-b4c7-a6bbc940fc47","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b7dd5175-f7a0-4b5e-9224-203d4fae1c4d","name":"Send your SMS campaign immediately - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/sendNow","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b7dd5175-f7a0-4b5e-9224-203d4fae1c4d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"64e8bd39-5b33-477a-ae7f-0501cb5a6140","name":"Send an SMS campaign's report - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/sendReport","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"64e8bd39-5b33-477a-ae7f-0501cb5a6140","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"734d1bda-9010-4188-9a00-57d5b302eee4","name":"Send a test SMS campaign - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/sendTest","method":"POST","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"734d1bda-9010-4188-9a00-57d5b302eee4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"694adffd-8af9-45be-8225-5e44e17d7454","name":"Update a campaign's status - default","request":{"urlPathTemplate":"/smsCampaigns/{campaignId}/status","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"694adffd-8af9-45be-8225-5e44e17d7454","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"03183785-7a99-4733-896c-eb489047065c","name":"Return all your created WhatsApp campaigns - default","request":{"urlPathTemplate":"/whatsappCampaigns","method":"GET"},"response":{"status":200,"body":"{\n \"campaigns\": [\n {\n \"campaignName\": \"campaign_22\",\n \"campaignStatus\": \"sent\",\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"errorReason\": \"NONE\",\n \"id\": 1672035851100690,\n \"invalidatedContacts\": 0,\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"readPercentage\": 28.57,\n \"scheduledAt\": \"2022-12-27T09:50:00Z\",\n \"stats\": {\n \"delivered\": 3,\n \"notSent\": 4,\n \"read\": 2,\n \"sent\": 3,\n \"unsubscribe\": 0\n },\n \"templateId\": \"templateId\"\n }\n ],\n \"count\": 23\n}","headers":{"Content-Type":"application/json"}},"uuid":"03183785-7a99-4733-896c-eb489047065c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5fc3f144-a51f-454f-a5d0-019b38ba3c15","name":"Create and Send a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"5fc3f144-a51f-454f-a5d0-019b38ba3c15","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"cc80c9bc-ff82-4140-9b7a-dfb84c8e99a7","name":"Get your WhatsApp API account information - default","request":{"urlPathTemplate":"/whatsappCampaigns/config","method":"GET"},"response":{"status":200,"body":"{\n \"businessStatus\": \"verified\",\n \"phoneNumberNameStatus\": \"APPROVED\",\n \"phoneNumberQuality\": \"GREEN\",\n \"sendingLimit\": \"TIER_1K\",\n \"whatsappBusinessAccountId\": \"whatsappBusinessAccountId\",\n \"whatsappBusinessAccountStatus\": \"APPROVED\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"cc80c9bc-ff82-4140-9b7a-dfb84c8e99a7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"5217f5cb-e270-45d2-bf41-0aa3651c5839","name":"Create a WhatsApp template - default","request":{"urlPathTemplate":"/whatsappCampaigns/template","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"5217f5cb-e270-45d2-bf41-0aa3651c5839","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e541402c-10e0-447d-ab89-e9102a312296","name":"Return all your created WhatsApp templates - default","request":{"urlPathTemplate":"/whatsappCampaigns/template-list","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"templates\": [\n {\n \"category\": \"MARKETING\",\n \"createdAt\": \"2017-05-01T12:30:00Z\",\n \"errorReason\": \"NONE\",\n \"id\": 235,\n \"language\": \"en\",\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"campaign_22\",\n \"status\": \"approved\"\n },\n {\n \"category\": \"MARKETING\",\n \"createdAt\": \"2017-0\",\n \"errorReason\": \"NONE\",\n \"id\": 124,\n \"language\": \"\",\n \"modifiedAt\": \"2017-05-01T12:30:00Z\",\n \"name\": \"test-template\",\n \"status\": \"draft\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"e541402c-10e0-447d-ab89-e9102a312296","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"c47467e5-3355-486f-b83b-ecf963b249b4","name":"Send your WhatsApp template for approval - default","request":{"urlPathTemplate":"/whatsappCampaigns/template/approval/{templateId}","method":"POST","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c47467e5-3355-486f-b83b-ecf963b249b4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6d437255-9beb-48aa-9616-0b438eb437f6","name":"Get a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns/{campaignId}","method":"GET","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"campaignName\": \"Test WhatsApp Campaign\",\n \"campaignStatus\": \"sent\",\n \"createdAt\": \"2022-12-26T06:50:00Z\",\n \"id\": 1672035851100690,\n \"modifiedAt\": \"2022-12-26T08:50:00Z\",\n \"scheduledAt\": \"2022-12-27T09:50:00Z\",\n \"senderNumber\": \"senderNumber\",\n \"stats\": {\n \"delivered\": 3,\n \"notSent\": 4,\n \"read\": 2,\n \"sent\": 3,\n \"unsubscribe\": 0\n },\n \"template\": {\n \"body_variables\": [\n {\n \"datatype\": \"text\",\n \"default\": \"INVALID_HEADER\",\n \"name\": \"FIRSTNAME\"\n }\n ],\n \"button_type\": \"CALL_TO_ACTION\",\n \"category\": \"MARKETING\",\n \"components\": [\n {\n \"text\": \"making it look like readable English.\",\n \"type\": \"BODY\"\n },\n {\n \"text\": \"Life is a long lesson in humility\",\n \"type\": \"BUTTONS\"\n }\n ],\n \"contains_button\": true,\n \"display_header\": false,\n \"header_type\": \"text\",\n \"header_variables\": [\n {\n \"datatype\": \"text\",\n \"default\": \"INVALID HEADER\",\n \"name\": \"FIRSTNAME\"\n }\n ],\n \"hide_footer\": true,\n \"language\": \"en\",\n \"name\": \"official_campaign8\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"6d437255-9beb-48aa-9616-0b438eb437f6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eb75a9a4-36c5-4126-9a14-85044f19f2c1","name":"Update a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns/{campaignId}","method":"PUT","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"eb75a9a4-36c5-4126-9a14-85044f19f2c1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b4ef121d-89fa-4fb6-984d-39467bf9fd6b","name":"Delete a WhatsApp campaign - default","request":{"urlPathTemplate":"/whatsappCampaigns/{campaignId}","method":"DELETE","pathParameters":{"campaignId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b4ef121d-89fa-4fb6-984d-39467bf9fd6b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eb31fc6b-22fd-431f-ba7e-59e0d7773487","name":"Get all Companies - default","request":{"urlPathTemplate":"/companies","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"attributes\": {\n \"created_at\": \"2022-01-13T19:04:24.376+05:30\",\n \"domain\": \"xyz\",\n \"last_updated_at\": \"2022-04-01T18:47:48.283+05:30\",\n \"name\": \"text\",\n \"number_of_contacts\": 0,\n \"owner\": \"62260474111b1101704a9d85\",\n \"owner_assign_date\": \"2022-04-01T18:21:13.379+05:30\",\n \"phone_number\": 8171844192,\n \"revenue\": 10\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ],\n \"linkedDealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ]\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"eb31fc6b-22fd-431f-ba7e-59e0d7773487","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e17f5536-5a6b-4a26-8102-3170dd47ae3d","name":"Create a company - default","request":{"urlPathTemplate":"/companies","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad06\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e17f5536-5a6b-4a26-8102-3170dd47ae3d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f390d3a7-6a70-4b45-ad33-f4f3d3000538","name":"Import companies(creation and updation) - default","request":{"urlPathTemplate":"/companies/import","method":"POST"},"response":{"status":200,"body":"{\n \"processId\": 50\n}","headers":{"Content-Type":"application/json"}},"uuid":"f390d3a7-6a70-4b45-ad33-f4f3d3000538","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"708feaed-27c0-429f-8086-5e7c5e4ecd8d","name":"Link and Unlink company with contact and deal - default","request":{"urlPathTemplate":"/companies/link-unlink/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"708feaed-27c0-429f-8086-5e7c5e4ecd8d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"00aba53e-3870-4157-ace9-c2d252198e11","name":"Get a company - default","request":{"urlPathTemplate":"/companies/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"attributes\": {\n \"created_at\": \"2022-01-13T19:04:24.376+05:30\",\n \"domain\": \"xyz\",\n \"last_updated_at\": \"2022-04-01T18:47:48.283+05:30\",\n \"name\": \"text\",\n \"number_of_contacts\": 0,\n \"owner\": \"62260474111b1101704a9d85\",\n \"owner_assign_date\": \"2022-04-01T18:21:13.379+05:30\",\n \"phone_number\": 8171844192,\n \"revenue\": 10\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ],\n \"linkedDealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"00aba53e-3870-4157-ace9-c2d252198e11","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ed72bcbe-33c2-48e2-93e4-756a46e8fd90","name":"Delete a company - default","request":{"urlPathTemplate":"/companies/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ed72bcbe-33c2-48e2-93e4-756a46e8fd90","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d37f940-80db-41f6-9f83-1f3a2c69804b","name":"Update a company - default","request":{"urlPathTemplate":"/companies/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"attributes\": {\n \"created_at\": \"2022-01-13T19:04:24.376+05:30\",\n \"domain\": \"xyz\",\n \"last_updated_at\": \"2022-04-01T18:47:48.283+05:30\",\n \"name\": \"text\",\n \"number_of_contacts\": 0,\n \"owner\": \"62260474111b1101704a9d85\",\n \"owner_assign_date\": \"2022-04-01T18:21:13.379+05:30\",\n \"phone_number\": 8171844192,\n \"revenue\": 10\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ],\n \"linkedDealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"3d37f940-80db-41f6-9f83-1f3a2c69804b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1a24ce32-7c2c-41a5-80a9-1681d05767ad","name":"Create a company/deal attribute - default","request":{"urlPathTemplate":"/crm/attributes","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad07\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"1a24ce32-7c2c-41a5-80a9-1681d05767ad","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"360c88d6-c7bb-4c00-b1ab-146f803e9eff","name":"Delete an attribute - default","request":{"urlPathTemplate":"/crm/attributes/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"360c88d6-c7bb-4c00-b1ab-146f803e9eff","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a9790cec-51da-4b91-ae52-a3b58fa8c717","name":"Update an attribute - default","request":{"urlPathTemplate":"/crm/attributes/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"a9790cec-51da-4b91-ae52-a3b58fa8c717","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"696b098d-c426-490d-993d-82b72a9a6eec","name":"Get company attributes - default","request":{"urlPathTemplate":"/crm/attributes/companies","method":"GET"},"response":{"status":200,"body":"[\n {\n \"attributeOptions\": [\n {\n \"key\": \"custom key\",\n \"value\": \"custom label\"\n }\n ],\n \"attributeTypeName\": \"text\",\n \"internalName\": \"name\",\n \"isRequired\": true,\n \"label\": \"Company Name\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"696b098d-c426-490d-993d-82b72a9a6eec","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"3db982e0-00b7-41af-bc9d-fe3f54d90a12","name":"Get deal attributes - default","request":{"urlPathTemplate":"/crm/attributes/deals","method":"GET"},"response":{"status":200,"body":"[\n {\n \"attributeOptions\": [\n {\n \"key\": \"custom key\",\n \"value\": \"custom label\"\n }\n ],\n \"attributeTypeName\": \"text\",\n \"internalName\": \"deal_name\",\n \"isRequired\": true,\n \"label\": \"Deal Name\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"3db982e0-00b7-41af-bc9d-fe3f54d90a12","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4ee2c155-e8d9-4aee-b095-699a2c9a6263","name":"Get all deals - default","request":{"urlPathTemplate":"/crm/deals","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"attributes\": {\n \"amount\": 12,\n \"created_at\": \"2022-05-30T07:42:05.671Z\",\n \"deal_name\": \"testname\",\n \"deal_owner\": \"6093d2425a9b436e9519d034\",\n \"deal_stage\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"last_activity_date\": \"2022-06-06T08:38:36.000Z\",\n \"last_updated_date\": \"2022-06-06T08:38:36.761Z\",\n \"number_of_activities\": 0,\n \"number_of_contacts\": 1,\n \"pipeline\": \"6093d296ad1e9c5cf2140a58\",\n \"stage_updated_at\": \"2022-05-30T07:42:05.671Z\"\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedCompaniesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ]\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"4ee2c155-e8d9-4aee-b095-699a2c9a6263","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"21216821-874f-4e2a-a690-4b805b03c721","name":"Create a deal - default","request":{"urlPathTemplate":"/crm/deals","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad06\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"21216821-874f-4e2a-a690-4b805b03c721","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ce9e7723-550c-4f51-af88-6cde553f45b7","name":"Import deals(creation and updation) - default","request":{"urlPathTemplate":"/crm/deals/import","method":"POST"},"response":{"status":200,"body":"{\n \"processId\": 50\n}","headers":{"Content-Type":"application/json"}},"uuid":"ce9e7723-550c-4f51-af88-6cde553f45b7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f89fa5e6-0434-46e0-8c77-535bea98fc1a","name":"Link and Unlink a deal with contacts and companies - default","request":{"urlPathTemplate":"/crm/deals/link-unlink/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f89fa5e6-0434-46e0-8c77-535bea98fc1a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"a3513f5b-5df8-443d-aa67-5efd91e58f3d","name":"Get a deal - default","request":{"urlPathTemplate":"/crm/deals/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"attributes\": {\n \"amount\": 12,\n \"created_at\": \"2022-05-30T07:42:05.671Z\",\n \"deal_name\": \"testname\",\n \"deal_owner\": \"6093d2425a9b436e9519d034\",\n \"deal_stage\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"last_activity_date\": \"2022-06-06T08:38:36.000Z\",\n \"last_updated_date\": \"2022-06-06T08:38:36.761Z\",\n \"next_activity_date\": {\n \"key\": \"value\"\n },\n \"number_of_activities\": 0,\n \"number_of_contacts\": 1,\n \"pipeline\": \"6093d296ad1e9c5cf2140a58\",\n \"stage_updated_at\": \"2022-05-30T07:42:05.671Z\"\n },\n \"id\": \"629475917295261d9b1f4403\",\n \"linkedCompaniesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"linkedContactsIds\": [\n 1,\n 2,\n 3\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a3513f5b-5df8-443d-aa67-5efd91e58f3d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"54ba1660-4170-41b9-86d2-963468e28812","name":"Delete a deal - default","request":{"urlPathTemplate":"/crm/deals/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"54ba1660-4170-41b9-86d2-963468e28812","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e555066b-bfb4-4582-9f37-6eec50af9fe4","name":"Update a deal - default","request":{"urlPathTemplate":"/crm/deals/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e555066b-bfb4-4582-9f37-6eec50af9fe4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"00d065e6-8a4f-4ac9-a849-298a81551e9c","name":"Get pipeline stages - default","request":{"urlPathTemplate":"/crm/pipeline/details","method":"GET"},"response":{"status":200,"body":"{\n \"pipeline\": \"5ea675e3da0dd085acaea610\",\n \"pipeline_name\": \"Sales Pipeline\",\n \"stages\": [\n {\n \"id\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"name\": \"New\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"00d065e6-8a4f-4ac9-a849-298a81551e9c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e75093b9-5f73-46e0-a2af-1f7c47922829","name":"Get all pipelines - default","request":{"urlPathTemplate":"/crm/pipeline/details/all","method":"GET"},"response":{"status":200,"body":"[\n {\n \"pipeline\": \"5ea675e3da0dd085acaea610\",\n \"pipeline_name\": \"Sales Pipeline\",\n \"stages\": [\n {\n \"id\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"name\": \"New\"\n }\n ]\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"e75093b9-5f73-46e0-a2af-1f7c47922829","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2882799f-edf8-4d3b-826d-3692f300d025","name":"Get a pipeline - default","request":{"urlPathTemplate":"/crm/pipeline/details/{pipelineID}","method":"GET","pathParameters":{"pipelineID":{"equalTo":"pipelineID"}}},"response":{"status":200,"body":"[\n {\n \"pipeline\": \"5ea675e3da0dd085acaea610\",\n \"pipeline_name\": \"Sales Pipeline\",\n \"stages\": [\n {\n \"id\": \"9e577ff7-8e42-4ab3-be26-2b5e01b42518\",\n \"name\": \"New\"\n }\n ]\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"2882799f-edf8-4d3b-826d-3692f300d025","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2e96e9dc-f52d-4354-a185-de3257903a02","name":"Get all files - default","request":{"urlPathTemplate":"/crm/files","method":"GET"},"response":{"status":200,"body":"[\n {\n \"authorId\": \"61a5ce58y5d4795761045991\",\n \"companyId\": \"61a5ce58c5d4795761045991\",\n \"contactId\": 1,\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealId\": \"61a5ce58c5d4795761045991\",\n \"name\": \"example.png\",\n \"size\": 10\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"2e96e9dc-f52d-4354-a185-de3257903a02","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"54153a26-e96d-4b54-acab-08a1b6bb6027","name":"Upload a file - default","request":{"urlPathTemplate":"/crm/files","method":"POST"},"response":{"status":201,"body":"{\n \"authorId\": \"61a5ce58y5d4795761045991\",\n \"companyId\": \"61a5ce58c5d4795761045991\",\n \"contactId\": 1,\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealId\": \"61a5ce58c5d4795761045991\",\n \"name\": \"example.png\",\n \"size\": 10\n}","headers":{"Content-Type":"application/json"}},"uuid":"54153a26-e96d-4b54-acab-08a1b6bb6027","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fea850a9-ab2c-4fee-89b8-e564df22e53a","name":"Download a file - default","request":{"urlPathTemplate":"/crm/files/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"fileUrl\": \"https://storage.googleapis.com/brevo-app-crm.......-sample.pdf\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"fea850a9-ab2c-4fee-89b8-e564df22e53a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"38b72322-9ea0-47f2-b639-7d466c243b82","name":"Delete a file - default","request":{"urlPathTemplate":"/crm/files/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"38b72322-9ea0-47f2-b639-7d466c243b82","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1ee1505b-b76c-47f3-addc-8d237075f2a3","name":"Get file details - default","request":{"urlPathTemplate":"/crm/files/{id}/data","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"authorId\": \"61a5ce58y5d4795761045991\",\n \"companyId\": \"61a5ce58c5d4795761045991\",\n \"contactId\": 1,\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealId\": \"61a5ce58c5d4795761045991\",\n \"name\": \"example.png\",\n \"size\": 10\n}","headers":{"Content-Type":"application/json"}},"uuid":"1ee1505b-b76c-47f3-addc-8d237075f2a3","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"608a87de-9e4a-45e5-bb3a-e0683eb220b8","name":"Get all notes - default","request":{"urlPathTemplate":"/crm/notes","method":"GET"},"response":{"status":200,"body":"[\n {\n \"authorId\": {\n \"email\": \"johndoe@example.com\",\n \"id\": \"61a5ce58y5d4795761045991\",\n \"locale\": \"en_GB\",\n \"name\": {\n \"fullName\": \"John Doe\"\n },\n \"timezone\": \"Asia/Kolkata\"\n },\n \"contactIds\": [\n 247,\n 1,\n 2\n ],\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad09\",\n \"text\": \"In communication with client_dev for resolution of queries.\",\n \"updatedAt\": \"2017-05-01T17:05:03Z\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"608a87de-9e4a-45e5-bb3a-e0683eb220b8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"0ceb328a-0b27-4d1d-8ba3-3abc8979d485","name":"Create a note - default","request":{"urlPathTemplate":"/crm/notes","method":"POST"},"response":{"status":200,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad09\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"0ceb328a-0b27-4d1d-8ba3-3abc8979d485","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f9cf8ca7-3372-4b74-854e-93a3d45c5d56","name":"Get a note - default","request":{"urlPathTemplate":"/crm/notes/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"authorId\": {\n \"email\": \"johndoe@example.com\",\n \"id\": \"61a5ce58y5d4795761045991\",\n \"locale\": \"en_GB\",\n \"name\": {\n \"fullName\": \"John Doe\"\n },\n \"timezone\": \"Asia/Kolkata\"\n },\n \"contactIds\": [\n 247,\n 1,\n 2\n ],\n \"createdAt\": \"2017-05-01T17:05:03Z\",\n \"dealIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad09\",\n \"text\": \"In communication with client_dev for resolution of queries.\",\n \"updatedAt\": \"2017-05-01T17:05:03Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f9cf8ca7-3372-4b74-854e-93a3d45c5d56","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b382d16e-0455-423c-9dd1-42efa255a495","name":"Delete a note - default","request":{"urlPathTemplate":"/crm/notes/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"b382d16e-0455-423c-9dd1-42efa255a495","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"458a7a9b-298d-44e2-a117-63db0c9047f0","name":"Update a note - default","request":{"urlPathTemplate":"/crm/notes/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"458a7a9b-298d-44e2-a117-63db0c9047f0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ce9a81b3-1605-4c76-bf79-fc52ff6a2653","name":"Get all tasks - default","request":{"urlPathTemplate":"/crm/tasks","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"companiesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"contactsIds\": [\n 1,\n 2,\n 3\n ],\n \"dealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad06\",\n \"name\": \"Task: Connect with client_dev\",\n \"taskTypeId\": \"61a5cd07ca1347c82306ad09\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"ce9a81b3-1605-4c76-bf79-fc52ff6a2653","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"60ee1139-00c5-4746-b240-523605d43bb4","name":"Create a task - default","request":{"urlPathTemplate":"/crm/tasks","method":"POST"},"response":{"status":201,"body":"{\n \"id\": \"61a5cd07ca1347c82306ad06\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"60ee1139-00c5-4746-b240-523605d43bb4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"909b9f4c-1f5b-4271-82fe-a4e4847db6c7","name":"Get a task - default","request":{"urlPathTemplate":"/crm/tasks/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"companiesIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"contactsIds\": [\n 1,\n 2,\n 3\n ],\n \"dealsIds\": [\n \"61a5ce58c5d4795761045990\",\n \"61a5ce58c5d4795761045991\",\n \"61a5ce58c5d4795761045992\"\n ],\n \"id\": \"61a5cd07ca1347c82306ad06\",\n \"name\": \"Task: Connect with client_dev\",\n \"taskTypeId\": \"61a5cd07ca1347c82306ad09\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"909b9f4c-1f5b-4271-82fe-a4e4847db6c7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"040ca6a6-b7b7-4cfd-95b2-a493ccc1691e","name":"Delete a task - default","request":{"urlPathTemplate":"/crm/tasks/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"040ca6a6-b7b7-4cfd-95b2-a493ccc1691e","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"90199d04-c868-46bf-8e40-5e330c257e75","name":"Update a task - default","request":{"urlPathTemplate":"/crm/tasks/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"90199d04-c868-46bf-8e40-5e330c257e75","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"667b0721-7004-49d8-9017-b6d086394c2f","name":"Get all task types - default","request":{"urlPathTemplate":"/crm/tasktypes","method":"GET"},"response":{"status":200,"body":"{\n \"id\": \"61a88a2eb7a574180261234\",\n \"title\": \"Email\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"667b0721-7004-49d8-9017-b6d086394c2f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"22a7a09a-6fad-41dd-aed4-b8806c57a34a","name":"Send a WhatsApp message - default","request":{"urlPathTemplate":"/whatsapp/sendMessage","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"22a7a09a-6fad-41dd-aed4-b8806c57a34a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fab3ac15-a813-4c2f-9673-e64845544c00","name":"Get all your WhatsApp activity (unaggregated events) - default","request":{"urlPathTemplate":"/whatsapp/statistics/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"body\": \"Hi! I am a reply\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"sent\",\n \"mediaUrl\": \"https://example.com/media.png\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"senderNumber\": \"senderNumber\"\n },\n {\n \"body\": \"Hi! I am a reply\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"error\",\n \"mediaUrl\": \"https://example.com/media.png\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"error reason\",\n \"senderNumber\": \"senderNumber\"\n },\n {\n \"body\": \"Hi! I am a reply\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"soft-bounce\",\n \"mediaUrl\": \"https://example.com/media.png\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"invalid whatsapp contact\",\n \"senderNumber\": \"senderNumber\"\n },\n {\n \"body\": \"body only in case of text reply & url will be empty\",\n \"contactNumber\": \"contactNumber\",\n \"date\": \"2017-03-12T12:30:00Z\",\n \"event\": \"reply\",\n \"mediaUrl\": \"media url only in case media reply & body will be empty\",\n \"messageId\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"reason\": \"23befbae-1505-47a8-bd27-e30ef739f32c\",\n \"senderNumber\": \"senderNumber\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fab3ac15-a813-4c2f-9673-e64845544c00","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"28f43c06-69ca-463d-ad60-4a71c61a0440","name":"Get the list of blocked or unsubscribed transactional contacts - default","request":{"urlPathTemplate":"/smtp/blockedContacts","method":"GET"},"response":{"status":200,"body":"{\n \"contacts\": [\n {\n \"blockedAt\": \"2017-05-01T12:30:00Z\",\n \"email\": \"abc@xyz.com\",\n \"reason\": {\n \"code\": \"adminBlocked\",\n \"message\": \"Admin blocked\"\n },\n \"senderEmail\": \"ez312@gmal.com\"\n }\n ],\n \"count\": 1\n}","headers":{"Content-Type":"application/json"}},"uuid":"28f43c06-69ca-463d-ad60-4a71c61a0440","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"e81c8495-0ef3-44b1-a9ce-45cc2bef7798","name":"Unblock or resubscribe a transactional contact - default","request":{"urlPathTemplate":"/smtp/blockedContacts/{email}","method":"DELETE","pathParameters":{"email":{"equalTo":"email"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"e81c8495-0ef3-44b1-a9ce-45cc2bef7798","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0aab435d-618c-452b-8545-7c35e9088c78","name":"Get the list of blocked domains - default","request":{"urlPathTemplate":"/smtp/blockedDomains","method":"GET"},"response":{"status":200,"body":"{\n \"domains\": [\n \"example.com\",\n \"testdomain.com\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"0aab435d-618c-452b-8545-7c35e9088c78","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"350fd1cc-de1c-4197-ae49-46ce6a1d6c03","name":"Add a new domain to the list of blocked domains - default","request":{"urlPathTemplate":"/smtp/blockedDomains","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"350fd1cc-de1c-4197-ae49-46ce6a1d6c03","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f5e28407-a9c3-4231-b722-a6b8bbd8af4a","name":"Unblock an existing domain from the list of blocked domains - default","request":{"urlPathTemplate":"/smtp/blockedDomains/{domain}","method":"DELETE","pathParameters":{"domain":{"equalTo":"domain"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"f5e28407-a9c3-4231-b722-a6b8bbd8af4a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d0e027cd-c123-40e7-9aad-30cdce7cf01d","name":"Delete hardbounces - default","request":{"urlPathTemplate":"/smtp/deleteHardbounces","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d0e027cd-c123-40e7-9aad-30cdce7cf01d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4682dc2f-8d22-401b-bb70-9d7939f0b7f7","name":"Send a transactional email - default","request":{"urlPathTemplate":"/smtp/email","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": \"<201798300811.5787683@relay.domain.com>\",\n \"messageIds\": [\n \"messageIds\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"4682dc2f-8d22-401b-bb70-9d7939f0b7f7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5b6bfccd-a5f9-44e8-ab53-d5429f8f9e49","name":"Delete scheduled emails by batchId or messageId - default","request":{"urlPathTemplate":"/smtp/email/{identifier}","method":"DELETE","pathParameters":{"identifier":{"equalTo":"4320f270-a4e3-4a2e-b591-edfe30a5e627"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"5b6bfccd-a5f9-44e8-ab53-d5429f8f9e49","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"7b3f5d29-5b44-4d25-ba1b-9b35d7e1bb44","name":"Fetch scheduled emails by batchId or messageId - default","request":{"urlPathTemplate":"/smtp/emailStatus/{identifier}","method":"GET","pathParameters":{"identifier":{"equalTo":"4320f270-a4e3-4a2e-b591-edfe30a5e627"}}},"response":{"status":200,"body":"{\n \"batches\": [\n {\n \"createdAt\": \"2022-02-26T11:36:43Z\",\n \"scheduledAt\": \"2022-02-28T11:36:43Z\",\n \"status\": \"queued\"\n },\n {\n \"createdAt\": \"2022-02-24T11:36:43Z\",\n \"scheduledAt\": \"2022-02-25T11:36:43Z\",\n \"status\": \"processed\"\n },\n {\n \"createdAt\": \"2022-02-25T11:36:43Z\",\n \"scheduledAt\": \"2022-02-26T11:36:43Z\",\n \"status\": \"inProgress\"\n }\n ],\n \"count\": 3\n}","headers":{"Content-Type":"application/json"}},"uuid":"7b3f5d29-5b44-4d25-ba1b-9b35d7e1bb44","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"59d3278a-2ea0-47c9-9d55-a4046d1b1377","name":"Get the list of transactional emails on the basis of allowed filters - default","request":{"urlPathTemplate":"/smtp/emails","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 120,\n \"transactionalEmails\": [\n {\n \"date\": \"2019-05-25T11:53:26Z\",\n \"email\": \"abc@xyz.com\",\n \"from\": \"diana.doe@example.com\",\n \"messageId\": \"<201798300811.5787683@relay.domain.com>\",\n \"subject\": \"summer camp\",\n \"tags\": [\n \"tag1\"\n ],\n \"templateId\": 15,\n \"uuid\": \"5a78c-209ok98262910-std2341\"\n },\n {\n \"date\": \"2019-05-25T07:28:11Z\",\n \"email\": \"test@test.com\",\n \"from\": \"diana.doe@example.com\",\n \"messageId\": \"<201798300811.5700093@relay.domain.com>\",\n \"subject\": \"details verification\",\n \"tags\": [\n \"tag1\"\n ],\n \"templateId\": 15,\n \"uuid\": \"5a78c-209ok98262910-s99a341\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"59d3278a-2ea0-47c9-9d55-a4046d1b1377","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"242bc913-9644-453e-a76b-b6898985c451","name":"Get the personalized content of a sent transactional email - default","request":{"urlPathTemplate":"/smtp/emails/{uuid}","method":"GET","pathParameters":{"uuid":{"equalTo":"uuid"}}},"response":{"status":200,"body":"{\n \"attachmentCount\": 2,\n \"body\": \" Greetings from the team
This is the actual html content sent
\",\n \"date\": \"2016-02-25T11:53:26Z\",\n \"email\": \"abc@example.com\",\n \"events\": [\n {\n \"name\": \"sent\",\n \"time\": \"2016-02-25T11:53:26Z\"\n },\n {\n \"name\": \"delivered\",\n \"time\": \"2016-02-25T11:55:26Z\"\n },\n {\n \"name\": \"opened\",\n \"time\": \"2016-02-26T09:53:26Z\"\n }\n ],\n \"subject\": \"Summer Camps\",\n \"templateId\": 12\n}","headers":{"Content-Type":"application/json"}},"uuid":"242bc913-9644-453e-a76b-b6898985c451","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"1060a95a-b193-4fcb-a2c0-82a02a746067","name":"Delete an SMTP transactional log - default","request":{"urlPathTemplate":"/smtp/log/{identifier}","method":"DELETE","pathParameters":{"identifier":{"equalTo":"identifier"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1060a95a-b193-4fcb-a2c0-82a02a746067","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4506e73c-7b47-483f-9ffc-09cb13f3d99a","name":"Get your transactional email activity aggregated over a period of time - default","request":{"urlPathTemplate":"/smtp/statistics/aggregatedReport","method":"GET"},"response":{"status":200,"body":"{\n \"blocked\": 2,\n \"clicks\": 9987,\n \"delivered\": 18996,\n \"hardBounces\": 234,\n \"invalid\": 0,\n \"opens\": 17654,\n \"range\": \"2016-09-08|2017-04-28\",\n \"requests\": 19887,\n \"softBounces\": 1533,\n \"spamReports\": 1,\n \"uniqueClicks\": 8766,\n \"uniqueOpens\": 13688,\n \"unsubscribed\": 2\n}","headers":{"Content-Type":"application/json"}},"uuid":"4506e73c-7b47-483f-9ffc-09cb13f3d99a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a81e1c33-f793-49d1-adb6-8083ca10de20","name":"Get all your transactional email activity (unaggregated events) - default","request":{"urlPathTemplate":"/smtp/statistics/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"date\": \"2017-03-12T12:30:00Z\",\n \"email\": \"john.smith@example.com\",\n \"event\": \"deferred\",\n \"from\": \"john@example.com\",\n \"ip\": \"165.87.3.15\",\n \"link\": \"https://www.someexamplelink.com\",\n \"messageId\": \"<201798300811.5787683@example.domain.com>\",\n \"reason\": \"Error connection timeout\",\n \"subject\": \"Sib client_dev test\",\n \"tag\": \"OrderConfirmation\",\n \"templateId\": 4\n },\n {\n \"date\": \"2017-03-13T16:30:00Z\",\n \"email\": \"john.smith@example.com\",\n \"event\": \"delivered\",\n \"from\": \"john@example.com\",\n \"ip\": \"165.87.3.15\",\n \"link\": \"https://www.someexamplelink.com\",\n \"messageId\": \"<201798300811.5787683@example.domain.com>\",\n \"reason\": \"Error connection timeout\",\n \"subject\": \"Sib client_dev test\",\n \"tag\": \"OrderConfirmation\",\n \"templateId\": 5\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"a81e1c33-f793-49d1-adb6-8083ca10de20","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"0d36a3c1-9ba5-4da3-9f9a-5d81dcb8cbc6","name":"Get your transactional email activity aggregated per day - default","request":{"urlPathTemplate":"/smtp/statistics/reports","method":"GET"},"response":{"status":200,"body":"{\n \"reports\": [\n {\n \"blocked\": 519,\n \"clicks\": 1026,\n \"date\": \"2017-04-30\",\n \"delivered\": 10103,\n \"hardBounces\": 21,\n \"invalid\": 1,\n \"opens\": 5091,\n \"requests\": 10756,\n \"softBounces\": 137,\n \"spamReports\": 0,\n \"uniqueClicks\": 720,\n \"uniqueOpens\": 2318,\n \"unsubscribed\": 0\n },\n {\n \"blocked\": 920,\n \"clicks\": 1514,\n \"date\": \"2017-05-01\",\n \"delivered\": 17499,\n \"hardBounces\": 34,\n \"invalid\": 2,\n \"opens\": 10089,\n \"requests\": 18812,\n \"softBounces\": 254,\n \"spamReports\": 0,\n \"uniqueClicks\": 1090,\n \"uniqueOpens\": 4393,\n \"unsubscribed\": 3\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"0d36a3c1-9ba5-4da3-9f9a-5d81dcb8cbc6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"81e1ac28-8b42-4ff7-a4f4-ad4a4fe0d149","name":"Generate the rendered preview of transactional template - default","request":{"urlPathTemplate":"/smtp/template/preview","method":"POST"},"response":{"status":200,"body":"{\n \"fromEmail\": \"fromEmail\",\n \"fromName\": \"fromName\",\n \"html\": \"html\",\n \"previewText\": \"previewText\",\n \"subject\": \"subject\",\n \"usedFeedNames\": [\n \"usedFeedNames\",\n \"usedFeedNames\"\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"81e1ac28-8b42-4ff7-a4f4-ad4a4fe0d149","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0e4d0a9a-9763-4d0b-92ab-7b1483ddd81b","name":"Get the list of email templates - default","request":{"urlPathTemplate":"/smtp/templates","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 2,\n \"templates\": [\n {\n \"createdAt\": \"2016-02-24T14:44:24Z\",\n \"doiTemplate\": false,\n \"htmlContent\": \"HTML CONTENT 1\",\n \"id\": 5,\n \"isActive\": false,\n \"modifiedAt\": \"2016-02-24T15:37:11Z\",\n \"name\": \"ChristomasTimeTemplate\",\n \"replyTo\": \"replyto@domain.com\",\n \"sender\": {\n \"email\": \"john.smith@example.com\",\n \"id\": \"43\",\n \"name\": \"John\"\n },\n \"subject\": \"Merry Christmas\",\n \"tag\": \"Festival\",\n \"testSent\": false,\n \"toField\": \"\"\n },\n {\n \"createdAt\": \"2016-02-25T11:53:26Z\",\n \"doiTemplate\": false,\n \"htmlContent\": \"HTML CONTENT 2\",\n \"id\": 12,\n \"isActive\": true,\n \"modifiedAt\": \"2016-02-25T11:53:26Z\",\n \"name\": \"SummerSales2017Template\",\n \"replyTo\": \"replyto@domain.com\",\n \"sender\": {\n \"email\": \"john.smith@example.com\",\n \"id\": \"43\",\n \"name\": \"John\"\n },\n \"subject\": \"Enjoy our summer Sales !\",\n \"tag\": \"Summer\",\n \"testSent\": false,\n \"toField\": \"\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"0e4d0a9a-9763-4d0b-92ab-7b1483ddd81b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"a7314e1c-958e-4335-9dd3-e65802b21168","name":"Create an email template - default","request":{"urlPathTemplate":"/smtp/templates","method":"POST"},"response":{"status":201,"body":"{\n \"id\": 5\n}","headers":{"Content-Type":"application/json"}},"uuid":"a7314e1c-958e-4335-9dd3-e65802b21168","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"845ecf0d-a02f-461d-908b-25fe3eab4ec9","name":"Returns the template information - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}","method":"GET","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"{\n \"createdAt\": \"2016-02-25T11:53:26Z\",\n \"doiTemplate\": false,\n \"htmlContent\": \"HTML CONTENT 4\",\n \"id\": 33,\n \"isActive\": true,\n \"modifiedAt\": \"2016-02-25T11:53:26Z\",\n \"name\": \"OrderConfirmation\",\n \"replyTo\": \"replyto@domain.com\",\n \"sender\": {\n \"email\": \"john.smith@example.com\",\n \"id\": \"43\",\n \"name\": \"John\"\n },\n \"subject\": \"Order Confirmation : Thanks for your Purchase !\",\n \"tag\": \"\",\n \"testSent\": false,\n \"toField\": \"\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"845ecf0d-a02f-461d-908b-25fe3eab4ec9","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"65a53a30-7428-4b1a-b0a4-88869d5b8d78","name":"Update an email template - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}","method":"PUT","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"65a53a30-7428-4b1a-b0a4-88869d5b8d78","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ee12d2af-6eea-4dd3-b43d-ca1463b36b14","name":"Delete an inactive email template - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}","method":"DELETE","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"ee12d2af-6eea-4dd3-b43d-ca1463b36b14","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"10979c60-afa4-4a94-a43e-5fc9613e22da","name":"Send a template to your test list - default","request":{"urlPathTemplate":"/smtp/templates/{templateId}/sendTest","method":"POST","pathParameters":{"templateId":{"equalTo":"1000000"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"10979c60-afa4-4a94-a43e-5fc9613e22da","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"df5bc4e6-ca5e-4cd7-809c-269c0845b24d","name":"Send SMS message asynchronously to a mobile number - default","request":{"urlPathTemplate":"/transactionalSMS/send","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": 1511882900176220\n}","headers":{"Content-Type":"application/json"}},"uuid":"df5bc4e6-ca5e-4cd7-809c-269c0845b24d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"70d5f369-4f59-482d-a10b-be3e50b4a40a","name":"Send SMS message to a mobile number - default","request":{"urlPathTemplate":"/transactionalSMS/sms","method":"POST"},"response":{"status":201,"body":"{\n \"messageId\": 1511882900176220,\n \"reference\": \"ab1cde2fgh3i4jklmno\",\n \"remainingCredits\": 82.85,\n \"smsCount\": 2,\n \"usedCredits\": 0.7\n}","headers":{"Content-Type":"application/json"}},"uuid":"70d5f369-4f59-482d-a10b-be3e50b4a40a","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"31feec95-40fc-4b7e-9c08-86c997f2dfb0","name":"Get your SMS activity aggregated over a period of time - default","request":{"urlPathTemplate":"/transactionalSMS/statistics/aggregatedReport","method":"GET"},"response":{"status":200,"body":"{\n \"accepted\": 6,\n \"blocked\": 4,\n \"delivered\": 16,\n \"hardBounces\": 5,\n \"range\": \"2015-05-22|2017-11-29\",\n \"rejected\": 14,\n \"replied\": 8,\n \"requests\": 54,\n \"skipped\": 1,\n \"softBounces\": 26,\n \"unsubscribed\": 10\n}","headers":{"Content-Type":"application/json"}},"uuid":"31feec95-40fc-4b7e-9c08-86c997f2dfb0","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"8bec6502-a4a6-4405-88f8-c7b97f2bc0e4","name":"Get all your SMS activity (unaggregated events) - default","request":{"urlPathTemplate":"/transactionalSMS/statistics/events","method":"GET"},"response":{"status":200,"body":"{\n \"events\": [\n {\n \"date\": \"2015-05-20T12:30:00Z\",\n \"event\": \"sent\",\n \"messageId\": \"1473139351170140\",\n \"phoneNumber\": \"phoneNumber\",\n \"reason\": \"Recipient is currently unreachable\",\n \"reply\": \"reply\",\n \"tag\": \"cabWaiting\"\n },\n {\n \"date\": \"2015-05-20T16:30:00Z\",\n \"event\": \"delivered\",\n \"messageId\": \"1473139351170140\",\n \"phoneNumber\": \"phoneNumber\",\n \"reason\": \"Recipient is currently unreachable\",\n \"reply\": \"reply\",\n \"tag\": \"cabRequest\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"8bec6502-a4a6-4405-88f8-c7b97f2bc0e4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"34ebfec8-ca13-4071-9f58-e116c00c6446","name":"Get your SMS activity aggregated per day - default","request":{"urlPathTemplate":"/transactionalSMS/statistics/reports","method":"GET"},"response":{"status":200,"body":"{\n \"reports\": [\n {\n \"accepted\": 2318,\n \"blocked\": 1026,\n \"date\": \"2017-04-30\",\n \"delivered\": 10103,\n \"hardBounces\": 21,\n \"rejected\": 0,\n \"replied\": 5091,\n \"requests\": 10756,\n \"skipped\": 1,\n \"softBounces\": 137,\n \"unsubscribed\": 720\n },\n {\n \"accepted\": 4393,\n \"blocked\": 1514,\n \"date\": \"2017-05-01\",\n \"delivered\": 17499,\n \"hardBounces\": 34,\n \"rejected\": 0,\n \"replied\": 10089,\n \"requests\": 18812,\n \"skipped\": 0,\n \"softBounces\": 254,\n \"unsubscribed\": 1090\n },\n {\n \"accepted\": 4689,\n \"blocked\": 1646,\n \"date\": \"2017-05-02\",\n \"delivered\": 13427,\n \"hardBounces\": 16,\n \"rejected\": 0,\n \"replied\": 11563,\n \"requests\": 14321,\n \"skipped\": 1,\n \"softBounces\": 176,\n \"unsubscribed\": 1170\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"34ebfec8-ca13-4071-9f58-e116c00c6446","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"b2c77971-5a16-41bb-99c4-62a5707d47bb","name":"Return all your created SMS templates - default","request":{"urlPathTemplate":"/transactionalSMS/templates","method":"GET"},"response":{"status":200,"body":"{\n \"count\": 1,\n \"templates\": [\n {\n \"id\": 4,\n \"name\": \"Order Confirmation - EN\",\n \"short_url_enabled\": false,\n \"message\": \"Thanks for your order !\",\n \"compliance\": {\n \"compliance_toggle\": true,\n \"organisation_prefix\": \"BREVO\",\n \"stop_keyword\": \"STOP\"\n },\n \"encryption\": true,\n \"unicode_sms\": true,\n \"media_file\": \"brv-logo.png\",\n \"media_file_size\": \"media_file_size\",\n \"media_url\": \"https://img-st2.mailinblue.com/1232/images/content_library/original/69282fe28f55fd22de6e0cf9.png\",\n \"createdAt\": \"2025-05-01T12:30:00Z\",\n \"updatedAt\": \"2025-05-01T12:30:00Z\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"b2c77971-5a16-41bb-99c4-62a5707d47bb","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]}],"meta":{"total":282}}
\ No newline at end of file