openapi: 3.2.0 info: description: Synivere Communication Gateway API version: 1.0.0 title: SCG Keywords API servers: - url: https://api.syniverse.com/scg-external-api/api/v1 tags: - name: Keywords paths: /messaging/keywords: get: tags: - Keywords summary: Returns the list of all keywords description: ' Returns the list of all keywords ' parameters: - name: id in: query description: 'unique keyword id ' required: false schema: type: string - name: name in: query description: 'name of the keyword ' required: false schema: type: string - name: value in: query description: 'the keyword. For example ''SPORTS''. The keyword can be expressed in form of a regular expression. POSIX Extended syntax is supported. ' required: false schema: type: string - name: case in: query description: 'SENSITIVE/INSENSITIVE specifies whether the keyword is case sensitive or not. default is not case sensitive. ' required: false schema: type: string - name: sender_id in: query description: 'The sender id on which the keyword is valid. When this is empty, any sender id associated with the given customer will be sensitive to this keyword ' required: false schema: type: string - name: valid_from in: query description: 'the date range for which the keyword is valid ' required: false schema: type: string - name: valid_to in: query description: 'the date range for which the keyword is valid ' required: false schema: type: string - name: campaign_id in: query description: 'The campaign id ' required: false schema: type: string - name: type in: query description: 'the type of the keyword: - RESERVED: those are the platform specific keywords that can not be used by customer in any campaign. Those keywords will always exist, the company will never need to add them - COMPANY: company specific keywords ' required: false schema: type: string - name: actions in: query description: 'actions to be applied when the keyword has been received. Multiple actions can be specified. The various actions should be separated by a coma or space: - OPTOUT -> mark the user as explicitly opted out (and forward message to Consent Manager) - OPTIN > mark the user as explicitly opted in (and forward message to Consent Manager) - STORE -> no action, just record in user profile ' required: false schema: type: string - name: application_id in: query description: 'ID of the application that has created the resource ' required: false schema: type: integer - name: created_date in: query description: 'The creation date of the object. ' required: false schema: type: string - name: last_updated_date in: query description: 'The last modification date of the object. ' required: false schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/inline_response_200_10' '400': description: "Bad Request. The request could not be understood by the server.\n\n * **400** - Bad Request - Error Message provides information about what's wrong with the request\n * **1023** - Indexed field too long - One of the values in the request exceeded the maximum allowed length\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '401': description: "Unauthorized. The request requires user authentication.\n\n * **401** - Unauthorized - Provided authentication data is invalid or insufficient\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '402': description: "Payment Required.\n\n * **402** - Insufficient credit - The account does not have sufficient funds for this operation\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '403': description: "Forbidden. The user does not have permission to access the specified resource.\n\n * **403** - Forbidden - Access to this resource is not allowed with the current application token\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '404': description: "Not found. The requested resource could not be found.\n\n * **404** - Error message contains details about the missing resource - Requested resource not found\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '409': description: "Conflict. The request could not be completed due to a conflict with the current state of the target resource.\n\n * **1001** - Stale data - Concurrent resource update. Refresh the resource and retry.\n * **1011** - Error message contains details about the key being violated - Unique key constraint violated\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '500': description: "Server Error. An error has been encountered while processing this request.\n\n * **500** - Server Error - Internal server error. Please report\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. post: tags: - Keywords summary: Create a new keyword description: ' Create a new keyword' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/inline_response_200_3' '400': description: "Bad Request. The request could not be understood by the server.\n\n * **400** - Bad Request - Error Message provides information about what's wrong with the request\n * **1023** - Indexed field too long - One of the values in the request exceeded the maximum allowed length\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '401': description: "Unauthorized. The request requires user authentication.\n\n * **401** - Unauthorized - Provided authentication data is invalid or insufficient\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '402': description: "Payment Required.\n\n * **402** - Insufficient credit - The account does not have sufficient funds for this operation\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '403': description: "Forbidden. The user does not have permission to access the specified resource.\n\n * **403** - Forbidden - Access to this resource is not allowed with the current application token\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '404': description: "Not found. The requested resource could not be found.\n\n * **404** - Error message contains details about the missing resource - Requested resource not found\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '409': description: "Conflict. The request could not be completed due to a conflict with the current state of the target resource.\n\n * **1001** - Stale data - Concurrent resource update. Refresh the resource and retry.\n * **1011** - Error message contains details about the key being violated - Unique key constraint violated\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '500': description: "Server Error. An error has been encountered while processing this request.\n\n * **500** - Server Error - Internal server error. Please report\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. requestBody: content: application/json: schema: $ref: '#/components/schemas/Keywords' /'messaging/keywords/{Keyword_ID}': get: tags: - Keywords summary: Retrieve a specific keyword description: ' Retrieve a specific keyword' parameters: - name: Keyword_ID in: path description: The Keyword ID for this resource. required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/inline_response_200_10_list' '400': description: "Bad Request. The request could not be understood by the server.\n\n * **400** - Bad Request - Error Message provides information about what's wrong with the request\n * **1023** - Indexed field too long - One of the values in the request exceeded the maximum allowed length\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '401': description: "Unauthorized. The request requires user authentication.\n\n * **401** - Unauthorized - Provided authentication data is invalid or insufficient\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '402': description: "Payment Required.\n\n * **402** - Insufficient credit - The account does not have sufficient funds for this operation\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '403': description: "Forbidden. The user does not have permission to access the specified resource.\n\n * **403** - Forbidden - Access to this resource is not allowed with the current application token\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '404': description: "Not found. The requested resource could not be found.\n\n * **404** - Error message contains details about the missing resource - Requested resource not found\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '409': description: "Conflict. The request could not be completed due to a conflict with the current state of the target resource.\n\n * **1001** - Stale data - Concurrent resource update. Refresh the resource and retry.\n * **1011** - Error message contains details about the key being violated - Unique key constraint violated\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '500': description: "Server Error. An error has been encountered while processing this request.\n\n * **500** - Server Error - Internal server error. Please report\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. post: tags: - Keywords summary: Update a keyword description: ' Update a keyword' parameters: - name: Keyword_ID in: path description: The Keyword ID for this resource. required: true schema: type: string responses: '204': description: Successful operation. No Content in reponse. '400': description: "Bad Request. The request could not be understood by the server.\n\n * **400** - Bad Request - Error Message provides information about what's wrong with the request\n * **1023** - Indexed field too long - One of the values in the request exceeded the maximum allowed length\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '401': description: "Unauthorized. The request requires user authentication.\n\n * **401** - Unauthorized - Provided authentication data is invalid or insufficient\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '402': description: "Payment Required.\n\n * **402** - Insufficient credit - The account does not have sufficient funds for this operation\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '403': description: "Forbidden. The user does not have permission to access the specified resource.\n\n * **403** - Forbidden - Access to this resource is not allowed with the current application token\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '404': description: "Not found. The requested resource could not be found.\n\n * **404** - Error message contains details about the missing resource - Requested resource not found\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '409': description: "Conflict. The request could not be completed due to a conflict with the current state of the target resource.\n\n * **1001** - Stale data - Concurrent resource update. Refresh the resource and retry.\n * **1011** - Error message contains details about the key being violated - Unique key constraint violated\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '500': description: "Server Error. An error has been encountered while processing this request.\n\n * **500** - Server Error - Internal server error. Please report\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. requestBody: content: application/json: schema: $ref: '#/components/schemas/Keywords_2' put: tags: - Keywords summary: Replace the keyword description: ' Replace the keyword' parameters: - name: Keyword_ID in: path description: The Keyword ID for this resource. required: true schema: type: string responses: '204': description: Successful operation. No Content in reponse. '400': description: "Bad Request. The request could not be understood by the server.\n\n * **400** - Bad Request - Error Message provides information about what's wrong with the request\n * **1023** - Indexed field too long - One of the values in the request exceeded the maximum allowed length\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '401': description: "Unauthorized. The request requires user authentication.\n\n * **401** - Unauthorized - Provided authentication data is invalid or insufficient\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '402': description: "Payment Required.\n\n * **402** - Insufficient credit - The account does not have sufficient funds for this operation\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '403': description: "Forbidden. The user does not have permission to access the specified resource.\n\n * **403** - Forbidden - Access to this resource is not allowed with the current application token\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '404': description: "Not found. The requested resource could not be found.\n\n * **404** - Error message contains details about the missing resource - Requested resource not found\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '409': description: "Conflict. The request could not be completed due to a conflict with the current state of the target resource.\n\n * **1001** - Stale data - Concurrent resource update. Refresh the resource and retry.\n * **1011** - Error message contains details about the key being violated - Unique key constraint violated\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '500': description: "Server Error. An error has been encountered while processing this request.\n\n * **500** - Server Error - Internal server error. Please report\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. requestBody: content: application/json: schema: $ref: '#/components/schemas/Keywords_1' delete: tags: - Keywords summary: Deletes specified keyword description: ' Deletes specified keyword' parameters: - name: Keyword_ID in: path description: The Keyword ID for this resource. required: true schema: type: string responses: '204': description: Successful operation. No Content in reponse. '400': description: "Bad Request. The request could not be understood by the server.\n\n * **400** - Bad Request - Error Message provides information about what's wrong with the request\n * **1023** - Indexed field too long - One of the values in the request exceeded the maximum allowed length\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '401': description: "Unauthorized. The request requires user authentication.\n\n * **401** - Unauthorized - Provided authentication data is invalid or insufficient\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '402': description: "Payment Required.\n\n * **402** - Insufficient credit - The account does not have sufficient funds for this operation\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '403': description: "Forbidden. The user does not have permission to access the specified resource.\n\n * **403** - Forbidden - Access to this resource is not allowed with the current application token\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '404': description: "Not found. The requested resource could not be found.\n\n * **404** - Error message contains details about the missing resource - Requested resource not found\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '409': description: "Conflict. The request could not be completed due to a conflict with the current state of the target resource.\n\n * **1001** - Stale data - Concurrent resource update. Refresh the resource and retry.\n * **1011** - Error message contains details about the key being violated - Unique key constraint violated\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. '500': description: "Server Error. An error has been encountered while processing this request.\n\n * **500** - Server Error - Internal server error. Please report\n" content: application/json: schema: properties: error_code: type: string description: The error code for this error. error_description: type: string description: A human readable description of the error. components: schemas: inline_response_200_3: type: object properties: id: type: string description: The identifier for the newly created resource. inline_response_200_10: type: object properties: list: type: array items: $ref: '#/components/schemas/inline_response_200_10_list' Keywords_2: type: object properties: name: type: string description: 'name of the keyword ' description: type: string description: 'description of the keyword ' value: type: string description: 'the keyword. For example ''SPORTS''. The keyword can be expressed in form of a regular expression. POSIX Extended syntax is supported. ' case: type: string description: 'SENSITIVE/INSENSITIVE specifies whether the keyword is case sensitive or not. default is not case sensitive. ' sender_id: type: string description: 'The sender id on which the keyword is valid. When this is empty, any sender id associated with the given customer will be sensitive to this keyword ' valid_from: type: string description: 'the date range for which the keyword is valid ' valid_to: type: string description: 'the date range for which the keyword is valid ' associated_info: type: string description: 'additional information, value is at customer discretion, this attribute is added to the keyword event whenever the keyword is detected ' campaign_id: type: string description: 'The campaign id ' type: type: string description: 'the type of the keyword: - RESERVED: those are the platform specific keywords that can not be used by customer in any campaign. Those keywords will always exist, the company will never need to add them - COMPANY: company specific keywords ' actions: type: string description: 'actions to be applied when the keyword has been received. Multiple actions can be specified. The various actions should be separated by a coma or space: - OPTOUT -> mark the user as explicitly opted out (and forward message to Consent Manager) - OPTIN > mark the user as explicitly opted in (and forward message to Consent Manager) - STORE -> no action, just record in user profile ' reply_template: type: string description: 'if specified then SCG will send a predefined message back to the user. This attribute will contain the name of the message template to be used in the automatic reply ' attachments: type: string description: 'List of attachments to be sent as autoreplay ' search_words_count: type: integer description: 'Server will search for pattern in first search_words words of the message ' version_number: type: integer description: 'An ascending version number of the resource. 1 upon creation, incremented by one for each modification done. Used to implement optimistic locking ' Keywords_1: type: object properties: name: type: string description: 'name of the keyword ' description: type: string description: 'description of the keyword ' value: type: string description: 'the keyword. For example ''SPORTS''. The keyword can be expressed in form of a regular expression. POSIX Extended syntax is supported. ' case: type: string description: 'SENSITIVE/INSENSITIVE specifies whether the keyword is case sensitive or not. default is not case sensitive. ' sender_id: type: string description: 'The sender id on which the keyword is valid. When this is empty, any sender id associated with the given customer will be sensitive to this keyword ' valid_from: type: string description: 'the date range for which the keyword is valid ' valid_to: type: string description: 'the date range for which the keyword is valid ' associated_info: type: string description: 'additional information, value is at customer discretion, this attribute is added to the keyword event whenever the keyword is detected ' campaign_id: type: string description: 'The campaign id ' type: type: string description: 'the type of the keyword: - RESERVED: those are the platform specific keywords that can not be used by customer in any campaign. Those keywords will always exist, the company will never need to add them - COMPANY: company specific keywords ' actions: type: string description: 'actions to be applied when the keyword has been received. Multiple actions can be specified. The various actions should be separated by a coma or space: - OPTOUT -> mark the user as explicitly opted out (and forward message to Consent Manager) - OPTIN > mark the user as explicitly opted in (and forward message to Consent Manager) - STORE -> no action, just record in user profile ' reply_template: type: string description: 'if specified then SCG will send a predefined message back to the user. This attribute will contain the name of the message template to be used in the automatic reply ' version_number: type: integer description: 'An ascending version number of the resource. 1 upon creation, incremented by one for each modification done. Used to implement optimistic locking ' Keywords: type: object properties: name: type: string description: 'name of the keyword ' description: type: string description: 'description of the keyword ' value: type: string description: 'the keyword. For example ''SPORTS''. The keyword can be expressed in form of a regular expression. POSIX Extended syntax is supported. ' case: type: string description: 'SENSITIVE/INSENSITIVE specifies whether the keyword is case sensitive or not. default is not case sensitive. ' sender_id: type: string description: 'The sender id on which the keyword is valid. When this is empty, any sender id associated with the given customer will be sensitive to this keyword ' valid_from: type: string description: 'the date range for which the keyword is valid ' valid_to: type: string description: 'the date range for which the keyword is valid ' associated_info: type: string description: 'additional information, value is at customer discretion, this attribute is added to the keyword event whenever the keyword is detected ' campaign_id: type: string description: 'The campaign id ' type: type: string description: 'the type of the keyword: - RESERVED: those are the platform specific keywords that can not be used by customer in any campaign. Those keywords will always exist, the company will never need to add them - COMPANY: company specific keywords ' actions: type: string description: 'actions to be applied when the keyword has been received. Multiple actions can be specified. The various actions should be separated by a coma or space: - OPTOUT -> mark the user as explicitly opted out (and forward message to Consent Manager) - OPTIN > mark the user as explicitly opted in (and forward message to Consent Manager) - STORE -> no action, just record in user profile ' reply_template: type: string description: 'if specified then SCG will send a predefined message back to the user. This attribute will contain the name of the message template to be used in the automatic reply ' attachments: type: string description: 'List of attachments to be sent as autoreplay ' search_words_count: type: integer description: 'Server will search for pattern in first search_words words of the message ' inline_response_200_10_list: type: object properties: id: type: string description: 'unique keyword id ' name: type: string description: 'name of the keyword ' description: type: string description: 'description of the keyword ' value: type: string description: 'the keyword. For example ''SPORTS''. The keyword can be expressed in form of a regular expression. POSIX Extended syntax is supported. ' case: type: string description: 'SENSITIVE/INSENSITIVE specifies whether the keyword is case sensitive or not. default is not case sensitive. ' sender_id: type: string description: 'The sender id on which the keyword is valid. When this is empty, any sender id associated with the given customer will be sensitive to this keyword ' valid_from: type: string description: 'the date range for which the keyword is valid ' valid_to: type: string description: 'the date range for which the keyword is valid ' associated_info: type: string description: 'additional information, value is at customer discretion, this attribute is added to the keyword event whenever the keyword is detected ' campaign_id: type: string description: 'The campaign id ' type: type: string description: 'the type of the keyword: - RESERVED: those are the platform specific keywords that can not be used by customer in any campaign. Those keywords will always exist, the company will never need to add them - COMPANY: company specific keywords ' actions: type: string description: 'actions to be applied when the keyword has been received. Multiple actions can be specified. The various actions should be separated by a coma or space: - OPTOUT -> mark the user as explicitly opted out (and forward message to Consent Manager) - OPTIN > mark the user as explicitly opted in (and forward message to Consent Manager) - STORE -> no action, just record in user profile ' reply_template: type: string description: 'if specified then SCG will send a predefined message back to the user. This attribute will contain the name of the message template to be used in the automatic reply ' application_id: type: integer description: 'ID of the application that has created the resource ' created_date: type: string description: 'The creation date of the object. ' last_updated_date: type: string description: 'The last modification date of the object. ' version_number: type: integer description: 'An ascending version number of the object. 1 upon creation, incremented by one for each modification done. Used to implement optimistic locking. ' attachments: type: string description: 'List of attachments to be sent as autoreplay ' search_words_count: type: integer description: 'Server will search for pattern in first search_words words of the message '