') right 10px center no-repeat;background-size:20px;border:2px solid #41444e;border-radius:4px;box-shadow:0 1px 2px #00000040;color:#3b4151;font-family:sans-serif;font-size:14px;font-weight:700;padding:5px 40px 5px 10px}.swagger-ui select[multiple]{background:#f7f7f7;margin:5px 0;padding:5px}.swagger-ui select.invalid{animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui .opblock-body select{min-width:230px}@media (max-width:768px){.swagger-ui .opblock-body select{min-width:180px}}@media (max-width:640px){.swagger-ui .opblock-body select{min-width:100%;width:100%}}.swagger-ui label{color:#3b4151;font-family:sans-serif;font-size:12px;font-weight:700;margin:0 0 5px}.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{line-height:1}@media (max-width:768px){.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{max-width:175px}}.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text],.swagger-ui textarea{background:#fff;border:1px solid #d9d9d9;border-radius:4px;margin:5px 0;min-width:100px;padding:8px 10px}.swagger-ui input[type=email].invalid,.swagger-ui input[type=file].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid,.swagger-ui textarea.invalid{animation:shake .4s 1;background:#feebeb;border-color:#f93e3e}.swagger-ui input[disabled],.swagger-ui select[disabled],.swagger-ui textarea[disabled]{background-color:#fafafa;color:#888;cursor:not-allowed}.swagger-ui select[disabled]{border-color:#888}.swagger-ui textarea[disabled]{background-color:#41444e;color:#fff}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.swagger-ui textarea{background:#fffc;border:none;border-radius:4px;color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;min-height:280px;outline:none;padding:10px;width:100%}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{background:#41444e;border-radius:4px;color:#fff;font-family:monospace;font-size:12px;font-weight:600;margin:0;min-height:100px;padding:10px;resize:none}.swagger-ui .checkbox{color:#303030;padding:5px 0 10px;transition:opacity .5s}.swagger-ui .checkbox label{display:flex}.swagger-ui .checkbox p{color:#3b4151;font-family:monospace;font-style:italic;font-weight:400!important;font-weight:600;margin:0!important}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{background:#e8e8e8;border-radius:1px;box-shadow:0 0 0 2px #e8e8e8;cursor:pointer;display:inline-block;flex:none;height:16px;margin:0 8px 0 0;padding:5px;position:relative;top:3px;width:16px}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='3 7 10 8'%3E%3Cpath fill='%2341474e' fill-rule='evenodd' d='M6.333 15 3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z'/%3E%3C/svg%3E") 50% no-repeat}.swagger-ui .dialog-ux{inset:0;position:fixed;z-index:9999}.swagger-ui .dialog-ux .backdrop-ux{background:#000c;inset:0;position:fixed}.swagger-ui .dialog-ux .modal-ux{background:#fff;border:1px solid #ebebeb;border-radius:4px;box-shadow:0 10px 30px #0003;left:50%;max-width:650px;min-width:300px;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%;z-index:9999}.swagger-ui .dialog-ux .modal-ux-content{max-height:540px;overflow-y:auto;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{color:#41444e;color:#3b4151;font-family:sans-serif;font-size:12px;margin:0 0 5px}.swagger-ui .dialog-ux .modal-ux-content h4{color:#3b4151;font-family:sans-serif;font-size:18px;font-weight:600;margin:15px 0 0}.swagger-ui .dialog-ux .modal-ux-header{align-items:center;border-bottom:1px solid #ebebeb;display:flex;padding:12px 0}.swagger-ui .dialog-ux .modal-ux-header .close-modal{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0 10px}.swagger-ui .dialog-ux .modal-ux-header h3{color:#3b4151;flex:1;font-family:sans-serif;font-size:20px;font-weight:600;margin:0;padding:0 20px}.swagger-ui .model{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300;font-weight:600}.swagger-ui .model .deprecated span,.swagger-ui .model .deprecated td{color:#a0a0a0!important}.swagger-ui .model .deprecated>td:first-of-type{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .model-toggle{cursor:pointer;display:inline-block;font-size:10px;margin:auto .3em;position:relative;top:6px;transform:rotate(90deg);transform-origin:50% 50%;transition:transform .15s ease-in}.swagger-ui .model-toggle.collapsed{transform:rotate(0)}.swagger-ui .model-toggle:after{background:url('data:image/svg+xml;charset=utf-8, ') 50% no-repeat;background-size:100%;content:"";display:block;height:20px;width:20px}.swagger-ui .model-jump-to-path{cursor:pointer;position:relative}.swagger-ui .model-jump-to-path .view-line-link{cursor:pointer;position:absolute;top:-.4em}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{display:block}.swagger-ui .model-hint{background:#000000b3;border-radius:4px;color:#ebebeb;display:none;padding:.1em .5em;position:absolute;top:-1.8em;white-space:nowrap}.swagger-ui .model p{margin:0 0 1em}.swagger-ui .model .property{color:#999;font-style:italic}.swagger-ui .model .property.primitive{color:#6b6b6b}.swagger-ui .model .property.primitive.extension{display:block}.swagger-ui .model .property.primitive.extension>td:first-child{padding-left:0;padding-right:0;width:auto}.swagger-ui .model .property.primitive.extension>td:first-child:after{content:": "}.swagger-ui .model .external-docs,.swagger-ui table.model tr.description{color:#666;font-weight:400}.swagger-ui table.model tr.description td:first-child,.swagger-ui table.model tr.property-row.required td:first-child{font-weight:700}.swagger-ui table.model tr.property-row td{vertical-align:top}.swagger-ui table.model tr.property-row td:first-child{padding-right:.2em}.swagger-ui table.model tr.property-row .star{color:red}.swagger-ui table.model tr.extension{color:#777}.swagger-ui table.model tr.extension td:last-child{vertical-align:top}.swagger-ui table.model tr.external-docs td:first-child{font-weight:700}.swagger-ui table.model tr .renderedMarkdown p:first-child{margin-top:0}.swagger-ui section.models{border:1px solid rgba(59,65,81,.3);border-radius:4px;margin:30px 0}.swagger-ui section.models .pointer{cursor:pointer}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{border-bottom:1px solid rgba(59,65,81,.3);margin:0 0 5px}.swagger-ui section.models h4{align-items:center;color:#606060;cursor:pointer;display:flex;font-family:sans-serif;font-size:16px;margin:0;padding:10px 20px 10px 10px;transition:all .2s}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{flex:1}.swagger-ui section.models h4:hover{background:#00000005}.swagger-ui section.models h5{color:#707070;font-family:sans-serif;font-size:16px;margin:0 0 10px}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{background:#0000000d;border-radius:4px;margin:0 20px 15px;position:relative;transition:all .5s}.swagger-ui section.models .model-container:hover{background:#00000012}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-container .models-jump-to-path{opacity:.65;position:absolute;right:5px;top:8px}.swagger-ui section.models .model-box{background:none}.swagger-ui section.models .model-box:has(.model-box){overflow-x:auto;width:100%}.swagger-ui .model-box{background:#0000001a;border-radius:4px;display:inline-block;padding:10px}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-box.deprecated{opacity:.5}.swagger-ui .model-title{color:#505050;font-family:sans-serif;font-size:16px}.swagger-ui .model-title img{bottom:0;margin-left:1em;position:relative}.swagger-ui .model-deprecated-warning{color:#f93e3e;font-family:sans-serif;font-size:16px;font-weight:600;margin-right:1em}.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-name{display:inline-block;margin-right:1em}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#606060}.swagger-ui .servers>label{color:#3b4151;font-family:sans-serif;font-size:12px;margin:-20px 15px 0 0}.swagger-ui .servers>label select{max-width:100%;min-width:130px;width:100%}.swagger-ui .servers h4.message{padding-bottom:2em}.swagger-ui .servers table tr{width:30em}.swagger-ui .servers table td{display:inline-block;max-width:15em;padding-bottom:10px;padding-top:10px;vertical-align:middle}.swagger-ui .servers table td:first-of-type{padding-right:1em}.swagger-ui .servers table td input{height:100%;width:100%}.swagger-ui .servers .computed-url{margin:2em 0}.swagger-ui .servers .computed-url code{display:inline-block;font-size:16px;margin:0 1em;padding:4px}.swagger-ui .servers-title{font-size:12px;font-weight:700}.swagger-ui .operation-servers h4.message{margin-bottom:2em}.swagger-ui table{border-collapse:collapse;padding:0 10px;width:100%}.swagger-ui table.model tbody tr td{padding:0 0 0 1em;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{padding:0 0 0 2em;width:174px}.swagger-ui table.headers td{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300;font-weight:600;vertical-align:middle}.swagger-ui table.headers .header-example{color:#999;font-style:italic}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{min-width:6em;padding:10px 0}.swagger-ui table tbody tr td:has(.model-box){max-width:1px}.swagger-ui table thead tr td,.swagger-ui table thead tr th{border-bottom:1px solid rgba(59,65,81,.2);color:#3b4151;font-family:sans-serif;font-size:12px;font-weight:700;padding:12px 0;text-align:left}.swagger-ui .parameters-col_description{margin-bottom:2em;width:99%}.swagger-ui .parameters-col_description input{max-width:340px;width:100%}.swagger-ui .parameters-col_description select{border-width:1px}.swagger-ui .parameters-col_description .markdown:first-child p:first-child,.swagger-ui .parameters-col_description .renderedMarkdown:first-child p:first-child{margin:0}.swagger-ui .parameter__name{color:#3b4151;font-family:sans-serif;font-size:16px;font-weight:400;margin-right:.75em}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required span{color:red}.swagger-ui .parameter__name.required:after{color:#f009;content:"required";font-size:10px;padding:5px;position:relative;top:-6px}.swagger-ui .parameter__extension,.swagger-ui .parameter__in{color:gray;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .parameter__deprecated{color:red;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .parameter__empty_value_toggle{display:block;font-size:13px;padding-bottom:12px;padding-top:5px}.swagger-ui .parameter__empty_value_toggle input{margin-right:7px;width:auto}.swagger-ui .parameter__empty_value_toggle.disabled{opacity:.7}.swagger-ui .table-container{padding:20px}.swagger-ui .response-col_description{width:99%}.swagger-ui .response-col_description .markdown p:first-child,.swagger-ui .response-col_description .renderedMarkdown p:first-child{margin:0}.swagger-ui .response-col_description .markdown p:last-child,.swagger-ui .response-col_description .renderedMarkdown p:last-child{margin-bottom:0}.swagger-ui .response-col_links{min-width:6em}.swagger-ui .response__extension{color:gray;font-family:monospace;font-size:12px;font-style:italic;font-weight:600}.swagger-ui .topbar{background-color:#1b1b1b;padding:10px 0}.swagger-ui .topbar .topbar-wrapper{align-items:center;display:flex;flex-wrap:wrap;gap:10px}@media (max-width:550px){.swagger-ui .topbar .topbar-wrapper{align-items:start;flex-direction:column}}.swagger-ui .topbar a{align-items:center;color:#fff;display:flex;flex:1;font-family:sans-serif;font-size:1.5em;font-weight:700;max-width:300px;-webkit-text-decoration:none;text-decoration:none}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:flex;flex:3;justify-content:flex-end}.swagger-ui .topbar .download-url-wrapper input[type=text]{border:2px solid #62a03f;border-radius:4px 0 0 4px;margin:0;max-width:100%;outline:none;width:100%}.swagger-ui .topbar .download-url-wrapper .select-label{align-items:center;color:#f0f0f0;display:flex;margin:0;max-width:600px;width:100%}.swagger-ui .topbar .download-url-wrapper .select-label span{flex:1;font-size:16px;padding:0 10px 0 0;text-align:right}.swagger-ui .topbar .download-url-wrapper .select-label select{border:2px solid #62a03f;box-shadow:none;flex:2;outline:none;width:100%}.swagger-ui .topbar .download-url-wrapper .download-url-button{background:#62a03f;border:none;border-radius:0 4px 4px 0;color:#fff;font-family:sans-serif;font-size:16px;font-weight:700;padding:4px 30px}@media (max-width:550px){.swagger-ui .topbar .download-url-wrapper{width:100%}}.swagger-ui .info{margin:50px 0}.swagger-ui .info.failed-config{margin-left:auto;margin-right:auto;max-width:880px;text-align:center}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info pre,.swagger-ui .info table{font-size:14px}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5,.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{color:#3b4151;font-family:sans-serif}.swagger-ui .info a{color:#4990e2;font-family:sans-serif;font-size:14px;transition:all .4s}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{color:#3b4151;font-family:monospace;font-size:12px;font-weight:300!important;font-weight:600;margin:0}.swagger-ui .info .title{color:#3b4151;font-family:sans-serif;font-size:36px;margin:0}.swagger-ui .info .title small{background:#7d8492;border-radius:57px;display:inline-block;font-size:10px;margin:0 0 0 5px;padding:2px 4px;position:relative;top:-5px;vertical-align:super}.swagger-ui .info .title small.version-stamp{background-color:#89bf04}.swagger-ui .info .title small pre{color:#fff;font-family:sans-serif;margin:0;padding:0}.swagger-ui .auth-btn-wrapper{display:flex;justify-content:center;padding:10px 0}.swagger-ui .auth-btn-wrapper .btn-done{margin-right:1em}.swagger-ui .auth-wrapper{display:flex;flex:1;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{margin-left:10px;margin-right:10px;padding-right:20px}.swagger-ui .auth-container{border-bottom:1px solid #ebebeb;margin:0 0 10px;padding:10px 20px}.swagger-ui .auth-container:last-of-type{border:0;margin:0;padding:10px 20px}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{background-color:#fee;border-radius:4px;color:red;color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;margin:1em;padding:10px}.swagger-ui .auth-container .errors b{margin-right:1em;text-transform:capitalize}.swagger-ui .scopes h2{color:#3b4151;font-family:sans-serif;font-size:14px}.swagger-ui .scopes h2 a{color:#4990e2;cursor:pointer;font-size:12px;padding-left:10px;-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{animation:scaleUp .5s;background:#f93e3e1a;border:2px solid #f93e3e;border-radius:4px;margin:20px;padding:10px 20px}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{color:#3b4151;font-family:monospace;font-size:14px;font-weight:600;margin:0}.swagger-ui .errors-wrapper .errors small{color:#606060}.swagger-ui .errors-wrapper .errors .message{white-space:pre-line}.swagger-ui .errors-wrapper .errors .message.thrown{max-width:100%}.swagger-ui .errors-wrapper .errors .error-line{cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline}.swagger-ui .errors-wrapper hgroup{align-items:center;display:flex}.swagger-ui .errors-wrapper hgroup h4{color:#3b4151;flex:1;font-family:sans-serif;font-size:20px;margin:0}@keyframes scaleUp{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.swagger-ui .Resizer.vertical.disabled{display:none}.swagger-ui .markdown p,.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown p,.swagger-ui .renderedMarkdown pre{margin:1em auto;word-break:break-all;word-break:break-word}.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown pre{background:none;color:#000;font-weight:400;padding:0;white-space:pre-wrap}.swagger-ui .markdown code,.swagger-ui .renderedMarkdown code{background:#0000000d;border-radius:4px;color:#9012fe;font-family:monospace;font-size:14px;font-weight:600;padding:5px 7px}.swagger-ui .markdown pre>code,.swagger-ui .renderedMarkdown pre>code{display:block}.swagger-ui .json-schema-2020-12-keyword--\$vocabulary ul{border-left:1px dashed rgba(0,0,0,.1);margin:0 0 0 20px}.swagger-ui .json-schema-2020-12-\$vocabulary-uri{margin-left:35px}.swagger-ui .json-schema-2020-12-\$vocabulary-uri--disabled{-webkit-text-decoration:line-through;text-decoration:line-through}.swagger-ui .json-schema-2020-12-keyword--const .json-schema-2020-12-json-viewer__name,.swagger-ui .json-schema-2020-12-keyword--const .json-schema-2020-12-json-viewer__value{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12__constraint{background-color:#805ad5;border-radius:4px;color:#3b4151;color:#fff;font-family:monospace;font-weight:600;line-height:1.5;margin-left:10px;padding:1px 3px}.swagger-ui .json-schema-2020-12__constraint--string{background-color:#d69e2e;color:#fff}.swagger-ui .json-schema-2020-12-keyword--default .json-schema-2020-12-json-viewer__name,.swagger-ui .json-schema-2020-12-keyword--default .json-schema-2020-12-json-viewer__value{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-keyword--dependentRequired>ul{display:inline-block;margin:0;padding:0}.swagger-ui .json-schema-2020-12-keyword--dependentRequired>ul li{display:inline;list-style-type:none}.swagger-ui .json-schema-2020-12-keyword--description{color:#6b6b6b;font-size:12px;margin-left:20px}.swagger-ui .json-schema-2020-12-keyword--description p{margin:0}.swagger-ui .json-schema-2020-12-keyword--enum .json-schema-2020-12-json-viewer__name,.swagger-ui .json-schema-2020-12-keyword--enum .json-schema-2020-12-json-viewer__value,.swagger-ui .json-schema-2020-12-keyword--examples .json-schema-2020-12-json-viewer__name,.swagger-ui .json-schema-2020-12-keyword--examples .json-schema-2020-12-json-viewer__value{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-json-viewer-extension-keyword .json-schema-2020-12-json-viewer__name,.swagger-ui .json-schema-2020-12-json-viewer-extension-keyword .json-schema-2020-12-json-viewer__value{color:#929292;font-style:italic}.swagger-ui .json-schema-2020-12-keyword--patternProperties ul{border:none;margin:0;padding:0}.swagger-ui .json-schema-2020-12-keyword--patternProperties .json-schema-2020-12__title:first-of-type:after,.swagger-ui .json-schema-2020-12-keyword--patternProperties .json-schema-2020-12__title:first-of-type:before{color:#55a;content:"/"}.swagger-ui .json-schema-2020-12-keyword--properties>ul{border:none;margin:0;padding:0}.swagger-ui .json-schema-2020-12-property{list-style-type:none}.swagger-ui .json-schema-2020-12-property--required>.json-schema-2020-12:first-of-type>.json-schema-2020-12-head .json-schema-2020-12__title:after{color:red;content:"*";font-weight:700}.swagger-ui .json-schema-2020-12__title{color:#505050;display:inline-block;font-family:sans-serif;font-size:12px;font-weight:700;line-height:normal}.swagger-ui .json-schema-2020-12__title .json-schema-2020-12-keyword__name{margin:0}.swagger-ui .json-schema-2020-12-property{margin:7px 0}.swagger-ui .json-schema-2020-12-property .json-schema-2020-12__title{color:#3b4151;font-family:monospace;font-size:12px;font-weight:600;vertical-align:middle}.swagger-ui .json-schema-2020-12-keyword{margin:5px 0}.swagger-ui .json-schema-2020-12-keyword__children{border-left:1px dashed rgba(0,0,0,.1);margin:0 0 0 20px;padding:0}.swagger-ui .json-schema-2020-12-keyword__children--collapsed{display:none}.swagger-ui .json-schema-2020-12-keyword__name{font-size:12px;font-weight:700;margin-left:20px}.swagger-ui .json-schema-2020-12-keyword__name--primary{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-keyword__name--secondary{color:#6b6b6b;font-style:italic}.swagger-ui .json-schema-2020-12-keyword__name--extension{color:#929292;font-style:italic}.swagger-ui .json-schema-2020-12-keyword__value{color:#6b6b6b;font-size:12px;font-style:italic;font-weight:400}.swagger-ui .json-schema-2020-12-keyword__value--primary{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-keyword__value--secondary{color:#6b6b6b;font-style:italic}.swagger-ui .json-schema-2020-12-keyword__value--extension{color:#929292;font-style:italic}.swagger-ui .json-schema-2020-12-keyword__value--warning{border:1px dashed red;border-radius:4px;color:#3b4151;color:red;display:inline-block;font-family:monospace;font-style:normal;font-weight:600;line-height:1.5;margin-left:10px;padding:1px 4px}.swagger-ui .json-schema-2020-12-keyword__name--secondary+.json-schema-2020-12-keyword__value--secondary:before{content:"="}.swagger-ui .json-schema-2020-12__attribute{color:#3b4151;font-family:monospace;font-size:12px;padding-left:10px;text-transform:lowercase}.swagger-ui .json-schema-2020-12__attribute--primary{color:#55a}.swagger-ui .json-schema-2020-12__attribute--muted{color:gray}.swagger-ui .json-schema-2020-12__attribute--warning{color:red}.swagger-ui .json-schema-2020-12-json-viewer{margin:5px 0}.swagger-ui .json-schema-2020-12-json-viewer__children{border-left:1px dashed rgba(0,0,0,.1);margin:0 0 0 20px;padding:0}.swagger-ui .json-schema-2020-12-json-viewer__children--collapsed{display:none}.swagger-ui .json-schema-2020-12-json-viewer__name{font-size:12px;font-weight:700;margin-left:20px}.swagger-ui .json-schema-2020-12-json-viewer__name--primary{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-json-viewer__name--secondary{color:#6b6b6b;font-style:italic}.swagger-ui .json-schema-2020-12-json-viewer__name--extension{color:#929292;font-style:italic}.swagger-ui .json-schema-2020-12-json-viewer__value{color:#6b6b6b;font-size:12px;font-style:italic;font-weight:400}.swagger-ui .json-schema-2020-12-json-viewer__value--primary{color:#3b4151;font-style:normal}.swagger-ui .json-schema-2020-12-json-viewer__value--secondary{color:#6b6b6b;font-style:italic}.swagger-ui .json-schema-2020-12-json-viewer__value--extension{color:#929292;font-style:italic}.swagger-ui .json-schema-2020-12-json-viewer__value--warning{border:1px dashed red;border-radius:4px;color:#3b4151;color:red;display:inline-block;font-family:monospace;font-style:normal;font-weight:600;line-height:1.5;margin-left:10px;padding:1px 4px}.swagger-ui .json-schema-2020-12-json-viewer__name--secondary+.json-schema-2020-12-json-viewer__value--secondary:before{content:"="}.swagger-ui .json-schema-2020-12{background-color:#0000000d;border-radius:4px;margin:0 20px 15px;padding:12px 0 12px 20px}.swagger-ui .json-schema-2020-12:first-of-type{margin:20px}.swagger-ui .json-schema-2020-12:last-of-type{margin:0 20px}.swagger-ui .json-schema-2020-12--embedded{background-color:inherit;padding-bottom:0;padding-left:inherit;padding-right:inherit;padding-top:0}.swagger-ui .json-schema-2020-12-body{border-left:1px dashed rgba(0,0,0,.1);margin:2px 0}.swagger-ui .json-schema-2020-12-body--collapsed{display:none}.swagger-ui .json-schema-2020-12-accordion{border:none;outline:none;padding-left:0}.swagger-ui .json-schema-2020-12-accordion__children{display:inline-block}.swagger-ui .json-schema-2020-12-accordion__icon{display:inline-block;height:18px;vertical-align:bottom;width:18px}.swagger-ui .json-schema-2020-12-accordion__icon--expanded{transform:rotate(-90deg);transform-origin:50% 50%;transition:transform .15s ease-in}.swagger-ui .json-schema-2020-12-accordion__icon--collapsed{transform:rotate(0);transform-origin:50% 50%;transition:transform .15s ease-in}.swagger-ui .json-schema-2020-12-accordion__icon svg{height:20px;width:20px}.swagger-ui .json-schema-2020-12-expand-deep-button{border:none;color:#505050;color:#afaeae;font-family:sans-serif;font-size:12px;padding-right:0}.swagger-ui .model-box .json-schema-2020-12:not(.json-schema-2020-12--embedded)>.json-schema-2020-12-head .json-schema-2020-12__title:first-of-type{font-size:16px}.swagger-ui .model-box>.json-schema-2020-12{margin:0}.swagger-ui .model-box .json-schema-2020-12{background-color:transparent;padding:0}.swagger-ui .model-box .json-schema-2020-12-accordion,.swagger-ui .model-box .json-schema-2020-12-expand-deep-button{background-color:transparent}.swagger-ui .models .json-schema-2020-12:not(.json-schema-2020-12--embedded)>.json-schema-2020-12-head .json-schema-2020-12__title:first-of-type{font-size:16px}.swagger-ui .models .json-schema-2020-12:not(.json-schema-2020-12--embedded){overflow-x:auto;width:calc(100% - 40px)}
Документация Whatsapp API Прием и отправка сообщений через HTTP-запросы для работы с Whatsapp - работа с чатами, контактами, группами.
Описание WhatsApp API для сервиса Wappi Методы отправки сообщений
Вы можете отправить сообщение в Whatsapp синхронной или асинхронной командой. Асинхронные методы выполняют запросы с постановкой в очередь, в ответе придет сообщение о постановке в очередь и id задачи. Синхронные методы отправления сообщений выполняются сразу и позволяют получить в ответе результат запроса.
Особенности API
Токен авторизации передается в заголовке Authorization HTTP запроса. Profile_id передается query параметром в каждом запросе.
Безопасность
API WhatsApp работает на основе протокола WhatsApp WEB и исключает бан. Несмотря на это, стоит быть осторожным с анти-спам системой WhatsApp, подробнее об этом в Вопросах.
Тестирование API
Чтобы протестировать API необходимо авторизоваться. Для этого на данной странице нажмите Authorize, в появившемся окне в поле Value вставьте ваш токен api. Токен можно найти в дашборде на странице вашего профиля.
Коллекция Postman
Для удобства тестирования нашего API можете воспользоваться коллекцией Postman. Там же можно найти примеры реализованных методов на разных языках программирования.
Webhook на статус отправленного сообщения
Есть несколько статусов отправленных сообщений - pending, delivered, read, undelivered, temporary ban, error.
{
"messages": [
{
"wh_type": "authorization_status",
"profile_id": "71ad40e9-b023",
"status": "offline",
"reason": "logout from api",
"phone": "79502041990",
"timestamp": "2023-11-13T17:00:02.57417156+03:00",
"time": 1699884002
}
]
}
Свернуть
Webhook на статус профиля
Есть несколько статусов профиля - online, offline
{
"messages": [
{
"wh_type": "authorization_status",
"profile_id": "71ad40e9-b023",
"status": "offline",
"reason": "logout from api",
"phone": "79502041990",
"timestamp": "2023-11-13T17:00:02.57417156+03:00",
"time": 1699884002
}
]
}
Свернуть
Webhook на статус приложения
{
"messages": [
{
"wh_type": "authorization_status",
"profile_id": "71ad40e9-b023",
"status": "offline",
"reason": "logout from api",
"phone": "79502041990",
"timestamp": "2023-11-13T17:00:02.57417156+03:00",
"time": 1699884002
}
]
}
Свернуть
Webhook на входящее сообщение
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "6qw54f68-71eq",
"id": "3A945DD9CDD3016BE11B",
"body": "Ответ на сообщение",
"type": "chat",
"from": "79115576366@c.us",
"to": "79602041988@c.us",
"senderName": "Flood",
"chatId": "79115576366@c.us",
"timestamp": "2024-10-21T11:27:57+03:00",
"time": 1729499277,
"caption": null,
"from_where": "phone",
"contact_name": "Максим",
"is_forwarded": false,
"isReply": true,
"is_edited": false,
"stanza_id": "3A9DA038CF9A2CD87E66",
"is_me": false,
"chat_type": "dialog",
"thumbnail": "https://s3.wappi.pro/wapi-uploads30/6d154f68-71ec/tumb_79115576367.jpg?X-Amz-",
"picture": "https://s3.wappi.pro/wapi-uploads30/6d154f68-71ec/pic_79115576367.jpg?X-Amz",
"wappi_bot_id": "",
"is_deleted": false,
"is_bot": false,
"reply_message": {
"id": "3A9DA038CF9A2CD87E66",
"body": "https://wapi-uploads24.storage.yandexcloud.net/bitrix24/6d154f68-71ec/79bf",
"type": "image",
"chatId": "",
"timestamp": "2024-10-21T11:21:33+03:00",
"time": 0,
"caption": "Картинка",
"file_name": "79bf5bb7-ab23-455c-bf5e-42daca555529.jpg",
"contact_name": ""
}
}
]
}
Свернуть
Webhook на входящее изображение
Обратите внимание, все изображения отдаются в формате base64.
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3EB0CC6709A45F7311FD",
"body": "/9j/4AAQSkZNQ5JDP/9k=",
"type": "image",
"from": "79991940200@c.us",
"to": "79662041999@c.us",
"senderName": "Александр Жукин",
"chatId": "79991940200@c.us",
"timestamp": "2023-12-05T12:56:45+03:00",
"time": 1701770205,
"caption": "Это картинка",
"from_where": "phone",
"mimetype": "image/jpeg",
"contact_name": "Саня Жукин",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящее видео
Обратите внимание, что все видео отдаются в формате base64.
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3EB09F87B9CE13FA0667",
"body": "AAAAIGZ0eXBtcDQyAAS0vA==",
"type": "video",
"from": "79991940200@c.us",
"to": "79662041999@c.us",
"senderName": "Александр Жукин",
"chatId": "79991940200@c.us",
"timestamp": "2023-12-05T13:01:31+03:00",
"time": 1701770491,
"caption": "Это видео",
"from_where": "phone",
"mimetype": "video/mp4",
"contact_name": "Саня Жукин",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящий документ или файл
Обратите внимание, что все файлы и документы отдаются в формате base64.
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3EB08F8DF5768B401716",
"body": "JVBERi0xLjMJUVPRgo=",
"type": "document",
"from": "79991940200@c.us",
"to": "79662041999@c.us",
"senderName": "Александр Жукин",
"chatId": "79991940200@c.us",
"timestamp": "2023-12-05T13:02:19+03:00",
"time": 1701770539,
"caption": "Это документ",
"title": "Это документ",
"from_where": "phone",
"file_name": "1.pdf",
"mimetype": "application/pdf",
"contact_name": "Саня Жукин",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящее аудио
Обратите внимание, что все файлы аудио отдаются в формате base64.
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3EB0C341916D5111CC9A",
"body": "SUQzAwAAAAAHdAgDA==",
"type": "ptt",
"from": "79991940200@c.us",
"to": "79662041999@c.us",
"senderName": "Александр Жукин",
"chatId": "79991940200@c.us",
"timestamp": "2023-12-05T13:03:11+03:00",
"time": 1701770591,
"from_where": "phone",
"mimetype": "audio/mpeg",
"contact_name": "Саня Жукин",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящую геолокацию
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3EB0A6A4730776B10FA3",
"type": "location",
"from": "79991940200@c.us",
"to": "79662041999@c.us",
"senderName": "Александр Жукин",
"chatId": "79991940200@c.us",
"timestamp": "2023-12-05T13:04:03+03:00",
"time": 1701770643,
"from_where": "phone",
"location": {
"latitude": 55.750446,
"longitude": 37.617494,
"description": "улица Торцева, 23А, Северодвинск, Архангельская область, 164520"
},
"contact_name": "Саня Жукин",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящий контакт
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3EB0FB7CD60F1986B594",
"body": "BEGIN:VCARD\nVERSION:3.0\nN:;Имя контакта;;;\nFN:Имя
контакта\nTEL;type=CELL;type=VOICE;waid=79662041999:+79662041999\nEND:VCARD",
"type": "vcard",
"from": "79991940200@c.us",
"to": "79662041999@c.us",
"senderName": "Александр Жукин",
"chatId": "79991940200@c.us",
"timestamp": "2023-12-05T13:04:34+03:00",
"time": 1701770674,
"from_where": "phone",
"contact": {
"display_name": "Имя контакта",
"phone": "+79662041999"
},
"contact_name": "Саня Жукин",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящее голосовое сообщение
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3AD57A50F73CFC3B6DED",
"body": "T2dnUwACAAAAAAAJvNyUA=",
"type": "ptt",
"from": "79005576333@c.us",
"to": "79662041999@c.us",
"senderName": "Flood",
"chatId": "79005576333@c.us",
"timestamp": "2023-12-05T13:07:01+03:00",
"time": 1701770821,
"from_where": "phone",
"mimetype": "audio/ogg; codecs=opus",
"contact_name": "Максим",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящий звонок
Поле "type": "incoming_call" - входящий звонок; "missed_call" - пропущенный звонок; "call_terminate" - завершение звонка; "call_accept" - звонок принят.
{
"messages": {
"wh_type": "incoming_call",
"type": "incoming_call",
"contact": {
"Found": true,
"FirstName": "Саня Жукин",
"FullName": "Саня Жукин",
"PushName": "Александр Жукин",
"BusinessName": ""
},
"profile_id": "81ad40e9-b023",
"number": "71008888888",
"timestamp": "2023-07-17T17:40:34+03:00",
"time": 1689604834,
}
}
Свернуть
Webhook на входящую реакцию
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3A786E94948BFBED8A27",
"body": "👍",
"type": "reaction",
"from": "79005576333@c.us",
"to": "79662041999@c.us",
"senderName": "Flood",
"chatId": "79005576333@c.us",
"timestamp": "2023-12-05T13:08:08+03:00",
"time": 1701770888,
"from_where": "phone",
"contact_name": "Максим",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "3EB053D6EAE268F0FB4D42",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на входящее сообщение с кнопками
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "11a3e331-c546",
"id": "3EB0402A83A59D74852E",
"body": "contentText:\"Текст сообщения 1\" footerText:\"\" buttons:{buttonId:\"1\" buttonText:{displayText:\"button text 1\"} type:RESPONSE} buttons:{buttonId:\"2\" buttonText:{displayText:\"button text 2\"} type:RESPONSE} buttons:{buttonId:\"3\" buttonText:{displayText:\"button text 3\"} type:RESPONSE} headerType:TEXT text:\"Сообщение с кнопками\"",
"type": "buttons",
"from": "79995551122@c.us",
"to": "79224448855@c.us",
"senderName": "Дмитрий",
"chatId": "79995551122@c.us",
"timestamp": "2022-12-09T16:30:44+03:00",
"time": 1670592644,
"from_where": "api"
}
]
}
Свернуть
Webhook на входящее сообщение со списком
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "11a3e331-c546",
"id": "3EB002BA170199D9F8B2",
"body": "title:\"Заголовок сообщения со списком\" description:\"Это сообщение со списком\" buttonText:\"НАЖМИ на меня\" listType:SINGLE_SELECT sections:{title:\"Заголовок меню\" rows:{title:\"Выбор 1\" description:\"\" rowId:\"id1\"} rows:{title:\"Выбор 2\" description:\"\" rowId:\"id2\"} rows:{title:\"Выбор 3\" description:\"Можно добавлять описание для секции\" rowId:\"id3\"} rows:{title:\"Выбор 4\" description:\"Можно добавлять эмоджики\" rowId:\"aIfkv6\"} rows:{title:\"Выбор 5\" description:\"Текст\" rowId:\"test-4\"} rows:{title:\"Выбор 6\" description:\"Еще текст\" rowId:\"test-6\"} rows:{title:\"Выбор 7\" description:\"Больше текста\" rowId:\"test-7\"} rows:{title:\"Выбор 8\" description:\"Еще больше текста\" rowId:\"test-8\"}} contextInfo:{disappearingMode:{initiator:CHANGED_IN_CHAT}}",
"type": "list",
"from": "79995551122@c.us",
"to": "79224448855@c.us",
"senderName": "Дмитрий",
"chatId": "79995551122@c.us",
"timestamp": "2022-12-09T17:00:05+03:00",
"time": 1670594405,
"from_where": "api"
}
]
}
Свернуть
Webhook на входящий опрос
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "71ad40e9-b023",
"id": "3AD7644514D8B64B5E4F",
"body": "Вопрос",
"type": "poll",
"from": "79005576333@c.us",
"to": "79662041999@c.us",
"senderName": "Flood",
"chatId": "79005576333@c.us",
"timestamp": "2023-12-05T13:09:34+03:00",
"time": 1701770974,
"from_where": "phone",
"contact_name": "Максим",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog",
"poll_options": [
"Ответ 1",
"Ответ 2"
]
}
]
}
Свернуть
Webhook на нажатие кнопки
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "11a3e331-c546",
"id": "3A3CB510072A59DB53D2",
"body": "button text 1",
"type": "buttons_response",
"from": "79995551122@c.us",
"to": "79224448855@c.us",
"senderName": "Дмитрий",
"chatId": "79995551122@c.us",
"timestamp": "2022-12-09T16:43:22+03:00",
"time": 1670593402,
"from_where": "phone",
"button_response": true,
"selectedButtonId": "1"
}
]
}
Свернуть
Webhook на нажатие списка
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "11a3e331-c546",
"id": "3ADC84A9812D3B3E35F3",
"body": "id2",
"type": "list_response",
"from": "79995551122@c.us",
"to": "79224448855@c.us",
"senderName": "Ми",
"chatId": "79224448855@c.us",
"timestamp": "2022-12-09T17:04:20+03:00",
"time": 1670594660,
"from_where": "phone",
"list_response": true,
"selected_list_id": "id2"
}
]
}
Свернуть
Webhook на голосование в опросе
{
"messages": [
{
"wh_type": "incoming_message",
"profile_id": "501d59e1-0b06",
"id": "3A8B4D1C2EF20C6F895C",
"type": "poll_vote",
"from": "79602041920@c.us",
"to": "79217304433@c.us",
"senderName": "Ми",
"chatId": "79602041920@c.us",
"timestamp": "2023-05-22T12:53:34+03:00",
"time": 1684749214,
"from_where": "phone",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "3EB0F7485D1C02A618F3",
"poll_options": [
"да",
"нет",
"не знаю",
"где я?"
],
"selected_poll_variant": [
"да"
]
}
]
}
Свернуть
Webhook на исходящее сообщение API
{
"messages": [
{
"wh_type": "outgoing_message_api",
"profile_id": "71ad40e9-b023",
"id": "3EB0220348D7366EE7067B",
"body": "тест",
"type": "chat",
"from": "79662041999@c.us",
"to": "79005576333@c.us",
"senderName": "Сергей",
"chatId": "79005576333@c.us",
"timestamp": "2023-12-05T13:10:21+03:00",
"time": 1701771021,
"from_where": "api",
"contact_name": "Максим",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"task_id": "faede625-0f03-46e9-8f56-dae5a89887df",
"chat_type": "dialog"
}
]
}
Свернуть
Webhook на исходящее сообщение с телефона
{
"messages": [
{
"wh_type": "outgoing_message_phone",
"profile_id": "71ad40e9-b023",
"id": "3ABB9BBF9ACB92858E87",
"body": "Тест",
"type": "chat",
"from": "79662041999@c.us",
"to": "79005576333@c.us",
"senderName": "Сергей",
"chatId": "79005576333@c.us",
"timestamp": "2023-12-05T13:11:24+03:00",
"time": 1701771084,
"from_where": "phone",
"contact_name": "Максим",
"is_forwarded": false,
"isReply": false,
"is_edited": false,
"stanza_id": "",
"chat_type": "dialog"
}
]
}
Свернуть
Можно ли получить бан за использование сервиса?
Получить бан за использование нашего сервиса нельзя, это абсолютно безопасно - все выглядит как Whatsapp Web. Но мы не несем ответственности за неправомерное использование WhatsApp или нарушение его правил. Согласно политике WhatsApp, можно получить бан за подозрительную автоматизацию работы с мессенджером, а также за использование массовой рассылки и рассылку спама.
Можно ли производить массовые рассылки?
Технически вы можете использовать Wappi для массовой рассылки, у нас нет ограничений на количество отправленных сообщений. Но мы не рекомендуем делать рассылку нежелательных сообщений или спама, иначе есть риск быть заблокированным алгоритмами антиспам системы WhatsApp
Тарифы Whatsapp API Бесплатный пробный период 5 дней
1 месяц 3 месяца-10% 6 месяцев-15% 12 месяцев-30% Whatsapp
700 ₽
600 ₽ 700 ₽
550 ₽ 700 ₽
500 ₽ 700 ₽
за 1 профиль в месяц
Профиль это один подключенный аккаунт мессенджера. В рамках одного профиля можно менять номера. Сервисы: Агрегатор мессенджеров Чат-боты Рассылка сообщений ИИ-ассистент Виджет на сайт Готовые интеграции: Битрикс24 amoCRM и все остальные Безлимит на сообщения
Что еще предлагаем?
Становитесь техническим партнером и внедряйте мессенджеры в свою CRM или сервис с эксклюзивными условиями:
Скидки от объема Подневная тарификация Постоплата Индивидуальные условия