Infobip Moments API

Use Moments to set up and manage automated messaging campaigns with your customers by building conversation workflows. — 7 operation path(s) and 0 webhook(s) in Infobip's published OpenAPI.

OpenAPI Specification

infobip-moments-openapi.json Raw ↑
{
 "openapi":"3.1.0",
 "info":{
  "title":"Infobip OpenAPI Specification",
  "description":"OpenAPI Specification that contains all public endpoints and webhooks.",
  "contact":{
   "name":"Infobip support",
   "email":"support@infobip.com"
  },
  "version":"3.210.0",
  "x-generatedAt":"2026-07-23T15:23:53.730447352Z"
 },
 "tags":[
  {
   "name":"customer-engagement",
   "description":"Complete solutions that will help you drive better outcomes for your customers and business across the entire customer journey.\n",
   "x-type":"category",
   "x-displayName":"Customer Engagement"
  },
  {
   "name":"moments",
   "description":"Use Moments to set up and manage automated messaging campaigns with your customers by building conversation workflows.\n",
   "x-type":"product",
   "x-displayName":"Moments"
  },
  {
   "name":"flow",
   "description":"[Flow](https://www.infobip.com/docs/moments/manage-flow) is the Infobip communication builder that helps you create and manage messaging campaigns. The Flows API allows you to add or remove people from communication programmatically for flows with an [active status](https://www.infobip.com/docs/moments/manage-flow#launch-create).\n\nUse the Add Participants to flow endpoint to a person or batches of persons (between 1-1000 persons). The method works asynchronously to queue and process participants at a rate of 10 requests per second. For reporting of operation results, use the notifyUrl  field to provide a URL of your callback server that will receive a status report or use the Get a report on participants added to Flow endpoint.\n",
   "x-type":"module",
   "x-displayName":"Flow"
  },
  {
   "name":"forms",
   "description":"[Forms](https://www.infobip.com/docs/forms) is an Infobip platform solution to collect customer data that you can then use for messaging or analytics. Forms API allows you to retrieve an active form from your web page, track events, or collect the field values when the end user submits a form.\n",
   "x-type":"module",
   "x-displayName":"Forms"
  }
 ],
 "paths":{
  "/moments/1/flows/{campaignId}/participants":{
   "post":{
    "tags":[
     "customer-engagement",
     "moments",
     "flow"
    ],
    "summary":"Add participants to flow",
    "description":"Use this endpoint to add participants to a flow, accommodating anywhere from 1 to 1000 persons.\n                When participants are added, their profiles in People are automatically created, updated or merged based on the identifiers provided.<br>\n                If identifiers are unique, a new profile is created.<br>\n                If identifiers match an existing profile, then that profile is updated.<br>\n                If identifiers refer to multiple existing profiles or are not unique within the request, profiles are merged.<br>\n                To prevent unwanted merges, ensure each participant's identifiers\n                (<code>identifyBy</code>, <code>externalId</code> and <code>contactInformation</code>) are unique.",
    "operationId":"add-flow-participants",
    "parameters":[
     {
      "name":"campaignId",
      "in":"path",
      "description":"Unique identifier of the flow that participant will be added to.",
      "required":true,
      "style":"simple",
      "explode":false,
      "schema":{
       "type":"integer",
       "format":"int64"
      },
      "example":200000000000001
     }
    ],
    "requestBody":{
     "content":{
      "application/json":{
       "schema":{
        "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.AddFlowParticipantsRequest"
       },
       "examples":{
        "Add participants to Flow":{
         "summary":"Add participants to Flow",
         "description":"Add participants to Flow",
         "value":{
          "participants":[
           {
            "identifyBy":{
             "identifier":"370329180020364",
             "type":"FACEBOOK"
            }
           },
           {
            "identifyBy":{
             "identifier":"test@infobip.com",
             "type":"EMAIL"
            },
            "variables":{
             "orderNumber":1167873391
            }
           },
           {
            "identifyBy":{
             "identifier":"test2@infobip.com",
             "type":"EMAIL"
            },
            "variables":{
             "orderNumber":1595299041
            },
            "person":{
             "externalId":"optional_external_person_id",
             "customAttributes":{
              "Contract Expiry":"2023-04-01",
              "Company":"Infobip"
             },
             "contactInformation":{
              "email":[
               {
                "address":"test@infobip.com"
               }
              ]
             }
            }
           }
          ],
          "notifyUrl":"https://mydomain/callback",
          "callbackData":"Callback Data"
         }
        }
       }
      }
     },
     "required":true
    },
    "responses":{
     "200":{
      "description":"OK",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.AddFlowParticipantsResponse"
        },
        "examples":{
         "Response example":{
          "summary":"Response example",
          "value":{
           "operationId":"03f2d474-0508-46bf-9f3d-d8e2c28adaea"
          }
         }
        }
       }
      }
     },
     "400":{
      "description":"Bad Request",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.BadRequestResponse"
        },
        "examples":{
         "Bad request":{
          "summary":"Bad request",
          "description":"Bad request",
          "value":{
           "type":"about:blank",
           "title":"Bad Request",
           "status":400,
           "detail":"Failed to read request",
           "instance":"/moments/1/flows/200000000000001/participants"
          }
         },
         "Invalid number of participants":{
          "summary":"Invalid number of participants",
          "description":"Invalid number of participants",
          "value":{
           "errorCode":"400",
           "errorMessage":"Number of participants must be between 1 and 1000. Received: 1200"
          }
         },
         "Mandatory fields absent":{
          "summary":"Mandatory fields absent",
          "description":"Mandatory fields absent",
          "value":{
           "errorCode":"400",
           "errorMessage":"Mandatory fields are absent: [participants]"
          }
         },
         "Validation errors":{
          "summary":"Validation errors",
          "description":"Validation errors",
          "value":{
           "errorCode":"400",
           "errorMessage":"Field participants.[0].identifyBy.type must not be null or unsupported value"
          }
         }
        }
       }
      }
     },
     "401":{
      "$ref":"#/components/responses/ApiException401"
     },
     "403":{
      "$ref":"#/components/responses/ApiException403"
     },
     "404":{
      "description":"Not Found",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.ExceptionResponse"
        },
        "examples":{
         "Response example":{
          "summary":"Response example",
          "value":{
           "errorCode":"40401",
           "errorMessage":"Could not find active flow for campaign 200000000000001"
          }
         }
        }
       }
      }
     },
     "429":{
      "description":"Too Many Requests",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/8a96177a069f927b552e6f478d6833812472502f930c109564e4f89f3264faaa.ApiException"
        },
        "examples":{
         "Response example":{
          "summary":"Response example",
          "value":{
           "requestError":{
            "serviceException":{
             "messageId":"TOO_MANY_REQUESTS",
             "text":"Too many requests"
            }
           }
          }
         }
        }
       }
      }
     },
     "500":{
      "$ref":"#/components/responses/ApiException500"
     }
    },
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "flow:use",
     "flow:manage"
    ],
    "x-throttling-info":[
     {
      "type":"time",
      "numberOfRequests":10,
      "numberOfTimeUnits":0,
      "timeUnit":"s"
     }
    ]
   }
  },
  "/moments/1/flows/{campaignId}/participants/report":{
   "get":{
    "tags":[
     "customer-engagement",
     "moments",
     "flow"
    ],
    "summary":"Get a report on participants added to flow",
    "description":"Use this API endpoint to fetch a report to confirm that all persons have been successfully added to the flow.\n                Please note that report is stored for 30 days.",
    "operationId":"get-flow-participants-added-report",
    "parameters":[
     {
      "name":"campaignId",
      "in":"path",
      "description":"Unique identifier of the flow that participant will be added to.",
      "required":true,
      "style":"simple",
      "explode":false,
      "schema":{
       "type":"integer",
       "format":"int64"
      },
      "example":200000000000001
     },
     {
      "name":"operationId",
      "in":"query",
      "description":"Unique identifier of the operation.",
      "required":true,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"03f2d474-0508-46bf-9f3d-d8e2c28adaea"
     },
     {
      "name":"applicationId",
      "in":"query",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      }
     },
     {
      "name":"entityId",
      "in":"query",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      }
     }
    ],
    "responses":{
     "200":{
      "description":"OK",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.FlowParticipantsReportResponse"
        },
        "examples":{
         "Response example":{
          "summary":"Response example",
          "value":{
           "operationId":"03f2d474-0508-46bf-9f3d-d8e2c28adaea",
           "campaignId":200000000000001,
           "callbackData":"Callback Data",
           "participants":[
            {
             "identifyBy":{
              "identifier":"test@infobip.com",
              "type":"EMAIL"
             },
             "status":"ACCEPTED"
            },
            {
             "identifyBy":{
              "identifier":"test2@infobip.com",
              "type":"EMAIL"
             },
             "status":"REJECTED",
             "errorReason":"REJECTED_INVALID_CONTACT"
            }
           ]
          }
         }
        }
       }
      }
     },
     "401":{
      "$ref":"#/components/responses/ApiException401"
     },
     "403":{
      "$ref":"#/components/responses/ApiException403"
     },
     "404":{
      "description":"Not Found",
      "content":{
       "application/json":{}
      }
     },
     "429":{
      "$ref":"#/components/responses/ApiException429"
     },
     "500":{
      "$ref":"#/components/responses/ApiException500"
     }
    },
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "flow:use",
     "flow:read",
     "flow:manage"
    ],
    "x-throttling-info":[
     {
      "type":"time",
      "numberOfRequests":10,
      "numberOfTimeUnits":0,
      "timeUnit":"s"
     }
    ]
   }
  },
  "/communication/1/flows/{campaignId}/participants":{
   "post":{
    "tags":[
     "customer-engagement",
     "moments",
     "flow"
    ],
    "summary":"Add Person to Flow",
    "description":"Creates or updates a person and adds it to Flow",
    "operationId":"add-people-to-flow",
    "parameters":[
     {
      "name":"campaignId",
      "in":"path",
      "description":"Unique identifier of the flow that person will be added to",
      "required":true,
      "style":"simple",
      "explode":false,
      "schema":{
       "type":"integer",
       "format":"int64"
      },
      "example":10159347
     },
     {
      "name":"phone",
      "in":"query",
      "description":"Person's phone number",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":19123456789
     },
     {
      "name":"email",
      "in":"query",
      "description":"Person's email address",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"janewilliams@example.com"
     },
     {
      "name":"externalId",
      "in":"query",
      "description":"Unique ID for the person from an external system",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"8edb24b5-0319-48cd-a1d9-1e8bc5d577ab"
     }
    ],
    "requestBody":{
     "content":{
      "application/json":{
       "schema":{
        "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.FlowPersonRequest"
       }
      }
     }
    },
    "responses":{
     "200":{
      "description":"OK"
     },
     "400":{
      "description":"Bad Request",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.ExceptionResponse"
        }
       }
      }
     },
     "401":{
      "$ref":"#/components/responses/ApiException401"
     },
     "403":{
      "$ref":"#/components/responses/ApiException403"
     },
     "404":{
      "description":"Not Found",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.ExceptionResponse"
        }
       }
      }
     },
     "500":{
      "$ref":"#/components/responses/ApiException500"
     }
    },
    "deprecated":true,
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "flow:use",
     "flow:manage"
    ],
    "x-deprecationInformation":{
     "deprecation":"2023-10-25T00:00:00.777+0000",
     "sunset":"2024-10-25T12:00:00.777+0000",
     "successorOperationId":"add-flow-participants"
    },
    "x-throttling-info":[
     {
      "type":"time",
      "numberOfRequests":10,
      "numberOfTimeUnits":0,
      "timeUnit":"s"
     }
    ]
   },
   "delete":{
    "tags":[
     "customer-engagement",
     "moments",
     "flow"
    ],
    "summary":"Remove person from flow",
    "description":"Removes a participant with given identifier from the flow.",
    "operationId":"remove-people-from-flow",
    "parameters":[
     {
      "name":"campaignId",
      "in":"path",
      "description":"Unique identifier of the flow that person will be removed from.",
      "required":true,
      "style":"simple",
      "explode":false,
      "schema":{
       "type":"integer",
       "format":"int64"
      },
      "example":10159347
     },
     {
      "name":"phone",
      "in":"query",
      "description":"Person's phone number.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":19123456789
     },
     {
      "name":"email",
      "in":"query",
      "description":"Person's email address.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"janewilliams@example.com"
     },
     {
      "name":"externalId",
      "in":"query",
      "description":"Unique ID for the person from an external system.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string"
      },
      "example":"8edb24b5-0319-48cd-a1d9-1e8bc5d577ab"
     }
    ],
    "responses":{
     "200":{
      "description":"OK"
     },
     "400":{
      "description":"Bad Request",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.ExceptionResponse"
        }
       }
      }
     },
     "401":{
      "$ref":"#/components/responses/ApiException401"
     },
     "403":{
      "$ref":"#/components/responses/ApiException403"
     },
     "404":{
      "description":"Not Found",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/900634339512041dd9c6cd5c4ad62d6cf43ea57e0548f5deeceb9f79d92b92f0.ExceptionResponse"
        }
       }
      }
     },
     "429":{
      "$ref":"#/components/responses/ApiException429"
     },
     "500":{
      "$ref":"#/components/responses/ApiException500"
     }
    },
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "flow:use",
     "flow:manage"
    ],
    "x-throttling-info":[
     {
      "type":"time",
      "numberOfRequests":10,
      "numberOfTimeUnits":0,
      "timeUnit":"s"
     }
    ]
   }
  },
  "/forms/1/forms":{
   "get":{
    "tags":[
     "customer-engagement",
     "moments",
     "forms"
    ],
    "summary":"Get forms",
    "description":"Use this method to get a list of forms.",
    "operationId":"get-forms",
    "parameters":[
     {
      "name":"offset",
      "in":"query",
      "description":"Skip first {offset} forms of the list.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"integer",
       "format":"int32",
       "default":0
      },
      "example":60
     },
     {
      "name":"limit",
      "in":"query",
      "description":"The maximum number of returned forms. Maximum value is `100`.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"integer",
       "format":"int32",
       "default":25
      },
      "example":30
     },
     {
      "name":"formType",
      "in":"query",
      "description":"The type of returned forms.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "type":"string",
       "enum":[
        "OPT_IN",
        "OPT_OUT",
        "FACEBOOK",
        "LIVECHAT",
        "APPLE"
       ]
      },
      "example":"APPLE"
     },
     {
      "name":"formStatus",
      "in":"query",
      "description":"The status of returned forms.",
      "required":false,
      "style":"form",
      "explode":true,
      "schema":{
       "$ref":"#/components/schemas/082acced121042a63992bde26d4dd141353f7b2633c33f797139d71d4bef2a93.FormStatus"
      },
      "example":"ACTIVE"
     }
    ],
    "responses":{
     "200":{
      "description":"Successful Response",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/082acced121042a63992bde26d4dd141353f7b2633c33f797139d71d4bef2a93.ApiFormListDto"
        },
        "examples":{
         "Response example":{
          "summary":"Response example",
          "value":{
           "forms":[
            {
             "id":"f23f0f7c-9898-4feb-8f21-5afe2c29db7e",
             "name":"Test form",
             "elements":[
              {
               "component":"TEXT",
               "fieldId":"first_name",
               "personField":"firstName",
               "label":"First Name",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":255,
                "sample":"James",
                "forbiddenSymbols":[
                 "^",
                 "&",
                 "<",
                 ">",
                 "\"",
                 "/",
                 "\\",
                 "\n",
                 "\r",
                 ":",
                 "(",
                 ")",
                 "{",
                 "}",
                 "=",
                 ";",
                 "#",
                 "|",
                 "+",
                 "%",
                 "*",
                 "?",
                 "[",
                 "]"
                ]
               },
               "placeholder":"First Name"
              },
              {
               "component":"TEXT",
               "fieldId":"last_name",
               "personField":"lastName",
               "label":"Last Name",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":255,
                "sample":"James",
                "forbiddenSymbols":[
                 "^",
                 "&",
                 "<",
                 ">",
                 "\"",
                 "/",
                 "\\",
                 "\n",
                 "\r",
                 ":",
                 "(",
                 ")",
                 "{",
                 "}",
                 "=",
                 ";",
                 "#",
                 "|",
                 "+",
                 "%",
                 "*",
                 "?",
                 "[",
                 "]"
                ]
               },
               "placeholder":"Last Name"
              },
              {
               "component":"TEXT",
               "fieldId":"company",
               "personField":"267ce64a-1a26-4326-9036-6384696f39c8",
               "label":"Company",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "sample":"Lorem ipsum"
               },
               "placeholder":"Company"
              },
              {
               "component":"TEXT",
               "fieldId":"country",
               "personField":"country",
               "label":"Country",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "sample":"Lorem ipsum"
               },
               "placeholder":"Country"
              },
              {
               "component":"EMAIL",
               "fieldId":"email",
               "personField":"email",
               "label":"Email Address",
               "isRequired":true,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "pattern":"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
                "sample":"email@example.com"
               },
               "placeholder":"Email"
              },
              {
               "component":"TEXTAREA",
               "fieldId":"business_needs",
               "label":"Business Needs",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":3000,
                "sample":"Lorem ipsum ..."
               },
               "placeholder":""
              },
              {
               "component":"TEXT",
               "fieldId":"offer_id",
               "label":"OfferId",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "sample":"Lorem ipsum"
               },
               "placeholder":"OfferId"
              },
              {
               "component":"TEXT",
               "fieldId":"plan_id",
               "label":"PlanId",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "sample":"Lorem ipsum"
               },
               "placeholder":"PlanId"
              },
              {
               "component":"TEXT",
               "fieldId":"subscription_id",
               "label":"SubscriptionId",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "sample":"Lorem ipsum"
               },
               "placeholder":"SubscriptionId"
              },
              {
               "component":"TEXT",
               "fieldId":"Tenant_id",
               "label":"TenantId",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "sample":"Lorem ipsum"
               },
               "placeholder":"TenantId"
              },
              {
               "component":"SUBMIT_BUTTON",
               "label":"Submit"
              }
             ],
             "createdAt":"2022-07-11T06:38:12.757+0000",
             "updatedAt":"2022-07-11T06:45:12.826+0000",
             "resubmitEnabled":true,
             "formType":"OPT_IN",
             "formStatus":"ACTIVE"
            },
            {
             "id":"7370b24c-9788-4a52-a6a4-047cecbe2df2",
             "name":"test",
             "elements":[
              {
               "component":"EMAIL",
               "fieldId":"email",
               "personField":"email",
               "label":"Email",
               "isRequired":false,
               "isHidden":false,
               "additionalConfiguration":{},
               "validationRules":{
                "maxLength":1000,
                "pattern":"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
                "sample":"email@example.com"
               },
               "placeholder":"Email"
              },
              {
               "component":"SUBMIT_BUTTON",
               "label":"Submit"
              }
             ],
             "createdAt":"2022-06-15T13:21:38.195+0000",
             "updatedAt":"2022-06-15T13:21:46.286+0000",
             "resubmitEnabled":true,
             "formType":"OPT_IN",
             "formStatus":"ACTIVE"
            }
           ],
           "offset":0,
           "limit":25,
           "total":2
          }
         }
        }
       },
       "application/xml":{
        "schema":{
         "$ref":"#/components/schemas/082acced121042a63992bde26d4dd141353f7b2633c33f797139d71d4bef2a93.ApiFormListDto"
        },
        "examples":{
         "Response example":{
          "summary":"Response example",
          "value":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><ApiFormListDto>\n      \n  <forms>\n            \n    <forms>\n                  \n      <id>f23f0f7c-9898-4feb-8f21-5afe2c29db7e</id>\n                  \n      <name>Test form</name>\n                  \n      <elements>\n                        \n        <elements>\n                              \n          <component>TEXT</component>\n                              \n          <fieldId>first_name</fieldId>\n                              \n          <personField>firstName</personField>\n                              \n          <label>First Name</label>\n                              \n          <isRequired>false</isRequired>\n                              \n          <isHidden>false</isHidden>\n                              \n          <additionalConfiguration/>\n                              \n          <validationRules>\n                                    \n            <maxLength>255</maxLength>\n                                    \n            <sample>James</sample>\n                                    \n            <forbiddenSymbols>\n                                          \n              <forbiddenSymbols>^</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>&amp;</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>&lt;</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>&gt;</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>\"</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>/</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>\\</forbiddenSymbols>\n                                          \n              <forbiddenSymbols/>\n                                          \n              <forbiddenSymbols>&#13;</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>:</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>(</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>)</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>{</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>}</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>=</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>;</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>#</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>|</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>+</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>%</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>*</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>?</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>[</forbiddenSymbols>\n                                          \n              <forbiddenSymbols>]</forbiddenSymbols>\n                                      \n            </forbiddenSymbols>\n                                \n          </validationRules>\n                              \n          <placeholder>First Name</placeholder>\n                          \n        </elements>\n                        \n        <elements>\n                              \n          <component>TEXT</component>\n                              \n          <fieldId>last_name</fieldId>\n                              \n          <personField>lastName</personField>\n                              \n          <label>Last Name</label>\n                              \n          <isRequired>false</isRequired>\n                              \n          <isHidden>false</isHidden>\n                              \n          <additionalConfiguration/>\n                              \n          <validationRules>\n                                    \n            <maxLength>255</maxLength>\n  

# --- truncated at 32 KB (117 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/infobip/refs/heads/main/openapi/infobip-moments-openapi.json