# Qualify Brand by Use Case Before submitting a campaign, this API will provide some important feedback about how the resulting campaign will be treated. You can verify that the campaign will be supported by all operators, the AT&T message class and TPM, the T-Mobile brand daily bucket that will be applied and more. It is suggested to validate that the operator restrictions will meet your needs prior to submitting the campaign request. Brand revettings do not automatically adjust operator restrictions, and in some cases a new campaign may have to be resubmitted to receive the adjusted MNO values. Endpoint: GET /v1/projects/{projectId}/campaignRegistrations:qualify Version: 1.0 Security: BasicAuth, OAuth2 ## Path parameters: - `projectId` (string, required) Sinch uses projects to group resources such as contacts and apps together to manage and connect a unique set of keys and secret IDs for all your Sinch API products. To identify a project, it is given a unique alphanumeric identifier that ties it to your account. Your project ID can be found in the Customer Dashboard. ## Query parameters: - `brandId` (string, required) Brand Id to be qualified - `useCase` (string) The desired Use Case. ## Response 200 fields (application/json): - `useCase` (string) Desired useCase. - `monthlyFee` (number) Monthly registration fee for campaign. If auto-renew is selected on a campaign, this recurring fee will be charged monthly starting three months after the campaign is submitted. - `setupFee` (number) Initial setup fee, charged immediately once the campaign has been approved by Sinch and submitted to partners. This fee covers the first three months of campaign use, and will be charged whether or not the autoRenewal parameter is set on the campaign. - `minSubUseCases` (number) Minimum number of sub use-cases required when registering a campaign with the desired use case. - `maxSubUseCases` (number) Maximum number of sub use-cases required when registering a campaign with the desired use case. - `mnoMetadata` (object) ## Response 400 fields (application/json): - `error` (object, required) - `error.code` (integer, required) The error code. Example: 400 - `error.message` (string, required) The error message. Example: "Invalid argument." - `error.status` (string) The status of the error. Example: "INVALID_ARGUMENT" - `error.details` (array) An array of objects describing the error in more detail, if applicable. - `error.details.type` (string) A more specific description of the error. Example: "BadRequest" - `error.details.resourceType` (string) The type of resource relevant to the error, if applicable. - `error.details.resourceName` (string) The name of the resource, if applicable. - `error.details.owner` (string) The owner of the resource, if applicable. - `error.details.description` (string) A description of the error, if applicable. - `error.details.fieldViolations` (array) An array of all the field violations which contributed to the error. - `error.details.fieldViolations.field` (string) The field which produced the error. Example: "order_by" - `error.details.fieldViolations.description` (string) The description of the error. Example: "Invalid `order_by` number." ## Response 429 fields (application/json): - `error` (object, required) - `error.code` (integer, required) The error code. Example: 400 - `error.message` (string, required) The error message. Example: "Invalid argument." - `error.status` (string) The status of the error. Example: "INVALID_ARGUMENT" - `error.details` (array) An array of objects describing the error in more detail, if applicable. - `error.details.type` (string) A more specific description of the error. Example: "BadRequest" - `error.details.resourceType` (string) The type of resource relevant to the error, if applicable. - `error.details.resourceName` (string) The name of the resource, if applicable. - `error.details.owner` (string) The owner of the resource, if applicable. - `error.details.description` (string) A description of the error, if applicable. - `error.details.fieldViolations` (array) An array of all the field violations which contributed to the error. - `error.details.fieldViolations.field` (string) The field which produced the error. Example: "order_by" - `error.details.fieldViolations.description` (string) The description of the error. Example: "Invalid `order_by` number." ## Response 500 fields (application/json): - `error` (object, required) - `error.code` (integer, required) The error code. Example: 400 - `error.message` (string, required) The error message. Example: "Invalid argument." - `error.status` (string) The status of the error. Example: "INVALID_ARGUMENT" - `error.details` (array) An array of objects describing the error in more detail, if applicable. - `error.details.type` (string) A more specific description of the error. Example: "BadRequest" - `error.details.resourceType` (string) The type of resource relevant to the error, if applicable. - `error.details.resourceName` (string) The name of the resource, if applicable. - `error.details.owner` (string) The owner of the resource, if applicable. - `error.details.description` (string) A description of the error, if applicable. - `error.details.fieldViolations` (array) An array of all the field violations which contributed to the error. - `error.details.fieldViolations.field` (string) The field which produced the error. Example: "order_by" - `error.details.fieldViolations.description` (string) The description of the error. Example: "Invalid `order_by` number."