# Manage Users Source: https://docs.campaigncleaner.com/account-info/manage-users Effectively manage your users with Campaign Cleaner. Gain control over user permissions, roles, and settings, ensuring team collaboration and security. # User Management And Roles [Campaign Cleaner](https://campaigncleaner.com) provides you the capability to include additional users in your account to assist in the management and enhancement of your campaigns. We designate two roles: `administrators` and `users`. manage-user-.png **Administrators**, fundamentally, have complete access and control over the account. This includes the ability to purchase and cancel subscriptions, create API Keys, view invoices, manage users, among other tasks. **Users**, on the other hand, have more limited access. They can optimize any campaigns, manage the CDN and utilize the API Keys allocated to them. # Securing Your Account Source: https://docs.campaigncleaner.com/account-info/securing-your-account Discover comprehensive security measures, easy-to-follow guidelines, and advanced tools to safeguard your account against unauthorized access. ## Account Creation Process [Campaign Cleaner](https://campaigncleaner.com) provides two methods for creating an account: 1. **Email and Password** - A password of a minimum length of 8 characters is required, although we recommend using at least 12 characters, combining uppercase and lowercase letters, numbers, and special characters. All password are stored salted and one-way hashed with a high PBKDF2 iteration count. 2. **Sign in with Google** - Google manages the authentication process, disclosing only your email address and account name to us. Since Google is responsible for authentication, you won't be able to alter your password or set up TOTP 2FA through our system. However, you can make these changes within your Google account. ## TOTP 2FA (Two Factor Authentication) You have the choice to activate `TOTP 2FA` for enhanced security. We recommend turning this option one. You can use your favorite TOTP program like Google Authenticator, Authy, and others. Should you initially sign up with a email/password account and later opt to use Sign In With Google, your account will be transitioned to a Google sign-in account, if the email address matches. You will no longer have the ability to log in using email and password. If you signed in with Google and want to revoke access to Campaign Cleaner, you can do that in your google account under `security -> Signing in to other sites -> Sign in with Google`. Revoking access doesn't delete your account, it will just make you grant access to Campaign Cleaner to sign in again. ## Deleting your Account You can delete your account under Account Info -> Settings. # Create Inbox Test Source: https://docs.campaigncleaner.com/api-reference/endpoint/create-inbox-test POST /v1/create_inbox_test The **create_inbox_test** API allows you to create a new inbox placement test. Once created, you will receive a list of seed email addresses to send your campaign to. After sending your campaign to all addresses in the **send_to** list, you can use the **get_inbox_test_results** API to retrieve the placement results. This endpoint requires an active Campaign Cleaner subscription or a standalone Inbox Placement Tester subscription. One API credit will be deducted per test created. #### Header: **X-CC-API-Key**: Your API Key #### Request Body: _Required:_ - **test_name**: The name of your inbox test - maximum 255 characters. #### Response: - **job_id**: The unique ID of the inbox test, used to retrieve results via the **get_inbox_test_results** API. - **test_name**: The name you provided for the test. - **mailtester_address**: The unique monitoring address that must be included in your send list. This is already included in the **send_to** array. - **instructions**: A description of what to do next. - **send_to**: An array of all seed email addresses including the **mailtester_address**. Send your campaign to every address in this list. In the event of an error, you will get an "**error**:" response with a description of the reason. # Delete Campaign Source: https://docs.campaigncleaner.com/api-reference/endpoint/delete-campaign POST /v1/delete_campaign The **delete_campaign** API endpoint allows you to delete any of the campaigns in your saved campaigns in [Campaign Cleaner](https://campaigncleaner.com). #### Header: **X-CC-API-Key**: Your API Key #### Request Body: **campaign**: - **id**: The campaign id that will be deleted. #### Response: - **status**: _success_ or _failure,_ failures can occur when the **campaign_id** doesn't exists or was deleted. In the event of an error, you will get an "**error**:" response, with a description of the reason. # Get Campaign Source: https://docs.campaigncleaner.com/api-reference/endpoint/get-campaign POST /v1/get_campaign The **get_campaign** API allows you to retrieve any of your Saved Campaigns in [Campaign Cleaner](https://campaigncleaner.com). The response below is a real example of a newsletter that "Postman" sent us, overall it's a pretty good newsletter with a few issues, mainly image size and a couple of broken links. #### Header: **X-CC-API-Key**: Your API Key #### Request Body: _Required:_ **campaign**: - **id**: The campaign id that will be used in other API calls. _Optional:_ **campaign**: - **minimize_html**: (true/false) If true (default), removes all whitespace, tabs, etc. Condensing the HTML. #### Response: **campaign:** - **adjust_font_colors**: (true/false), If true, certain bright colors are spam triggers, like "**red**" or "**#FF0000**", was adjusted to a slightly different color like "**#FF0101"**, it will look the same, but won't trigger some spam filters. - **adjust_font_size**: (true/false) If true, The min and max font size defined below in pixels were applied. If your newsletter contains larger or small font's it was adjusted to the min/max you define. - **all_capitalized_word_ratio**: (double) The ratio of all capitalized words to total words in your campaign. - **all_capitalized_words**: (integer) The number of capitalized words found in your campaign. - **all_capitalized_word_max_acceptable_ratio**: (double) The max acceptable ratio of all capitalize words to total words in your campaign. - **all_link_list:** (list of links) All the links found in the campaign (images, text, etc.) - **link_url**: (string) The URL or location of the broken link. - **link_status**: (string) The status code of the link, please view the status guide below. - **link_redirected_url**: (string) The location of where the link was redirected to, empty string, if it wasn't redirected. - **link_is_image**: (true/false) True, if the link is used as an image. - **link_is_broken**: (true/false) True, if the link was non-functional at the time of the scan. - **link_initial**: (true/false) True, if the link was the initial link in the campaign, not an intermediate or final link, if redirected. - **link_count**: (integer) The number of times this link was found. - **link_secure:** (true/false) true, if the link is HTTPS. - **link_tel:** (true/false) true, if the link is tel: - **link_mailto:** (true/false) tru, if the link is mailto: - **bg_images_found**: (integer) The number of background images found, some major email clients don't support background images. - **bg_image_list**: (List of images) All the background images found - **image_url**: (string) The URL of where the image is located. - **image_size** (long) The size of the image in Kilobytes (KB) - **image_width**: (integer) The width of the image. - **image_height**: (integer) The height of the image. - **image_rendered_width**: (integer) The rendered width of the image. - **image_rendered_height**: (integer) The rendered height of the image. - **image_background**: (true/false) Will always be true, since this is a background image. - **image_type**: (Integer) 1=png, 2=jpeg, 3=gif, 4=bmp, 5=svg, 6=avif, 7=tif, 8=webp, 9=apng, 10=heic, 11=icon, 12=base64, -1=Unknown - **blacklisted_links**: (list of blacklisted links) Links that are on blacklists and their properties. - **bl_url**: (string) The web address where the blacklist is located. - **bl_name**: (string) The name of the blacklist - **link_url**: (string) The link in the campaign that is on a blacklist, can be a redirected link. - **blacklisted_links_found**: (integer) The total number of blacklisted links found. - **broken_links**: (list of links) All the broken links found in the campaign. - **link_url**: (string) The URL or location of the broken link. - **link_status**: (string) The reason why the link was considered broken, please view the status guide below. - **link_redirected_url**: (string) The location of where the link was redirected to, empty string, if it wasn't redirected. - **link_is_image**: (true/false) true, if the link is used as an image. - **link_is_broken**: (true/false) true, if the link was non-functional at the time of the scan. - **link_initial**: (true/false) true, if the link was the initial link in the campaign, not an intermediate or final link, if redirected. - **link_count**: (integer) The number of times this link was found. - **link_secure:** (true/false) true, if the link is HTTPS. - **link_tel:** (true/false) true, if the link is tel: - **link_mailto:** (true/false) tru, if the link is mailto: - **campaign_id**: The campaign id that will be used in other API calls. - **campaign_html:** (string) The adjusted HTML of the campaign, with all the fixes that were selected. - **campaign_name**: (string) The name the campaign was saved with. - **campaign_summary**: (list of messages) A quick summary of some of the changes that were applied and some analysis highlights. - **apply_count**: (true/false) If true, the count column apples to the message as the number of occurrences found. If false, the count will be zero, and the message is a statement of what happened. - **count**: (integer) The total occurrences that was found or corrected. - **html_changed**: (true/false) Indicates if the Campaign HTML was changed to correct the issue. - **message**: (string) The change or analysis that took place that indicating something change or something should be looked into further. - **convert_h_to_p_tags**: (true/false) If true, this will change all the H tags to P tags and set the correct font-size. - **convert_tables_to_divs:** (true/false) **\-** This is an experimental feature to convert all the tables to divs, in certain instances with a complicated table structure you might need to edit the HTML. We recommend leaving this as false or not setting it. - **custom_info**: The values you passed us when calling the **send_campaign** API - **domains_scanned**: (array of strings) The domains that were scanned at different blacklists. - **header_tags_count**: (integer) The number of header tags found in the campaign, header tags displays are not consistent across email clients, use "**div**" or "**p**" tags styled correctly instead. - **host_extensionless_images:** (true/**false**) If true, images without extensions will be hosted on our CDN when the **resize_and_host** parameter is set to true. Typically, dynamically generated images lack extensions, though there are exceptions. - **inline_css:** (**true**/false) When set to true, CSS styles are directly applied within the style attribute of each HTML element. - **inline_css_important:** (true/**false**) When set to true, the `!important` flag will also be inlined with CSS styles. If you are using media queries, it is generally recommended to keep this set to false. - **media_queries_important:** (**true**/false) When set to true, all media query styles will be marked with the `!important` flag. This ensures they can override any inline CSS without an `!important` flag. - **image_count**: (integer) The total number of images found in your campaign including background images. - **image_max_width**: (integer): The max-width style applied to all images in pixels. - **images_missing_alt_attribute:** (integer) The number of images missing or have an empty **"alt"** attribute. - **image_list**: (list of images) A list of all images found and their properties. - **image_url**: (string) The URL of where the image is located. - **image_size** (long) The size of the image in Kilobytes (KB) - **image_width**: (integer) The width of the image. - **image_height**: (integer) The height of the image. - **image_background**: (true/false) True, if this is a background image, otherwise - **image_type**: (Integer) 1=png, 2=jpeg, 3=gif, 4=bmp, 5=svg, 6=avif, 7=tif, 8=webp, 9=apng, 10=heic, 11=icon, 12=base64, -1=Unknown - **image_rendered_width**: (integer) The rendered width of the image. - **image_rendered_height**: (integer) The rendered height of the image. - **links_missing_title_attribute** : (integer) The number of links missing the **"title"** attribute. - **links_scanned**: (integer) The total number of links scanned, images, text, and redirects. - **os_images_found**: (integer) The number of oversized images found in your campaign, slowing down the loading of your campaign. - **pd_cdn_list**: (List of links on Poor delivery CDNs) Links that point to CDNs that are known to affect delivery. - **pd_cdn_name**: (string) The name of the CDN that can affect delivery. - **pd_cdn_url**: (string) The URL or Location the CDN uses to host content. - **min_font_size_allowed**: (A positive Integer, under 100) in pixels. - **max_font_size_allowed**: (A positive Integer under 100) in pixels. - **os_image_list**:(list of images) All the oversized images in the campaign - **image_url**: (string) The URL of where the image is located. - **image_size** (long) The size of the image in Kilobytes (KB) - **image_width**: (integer) The width of the image. - **image_height**: (integer) The height of the image. - **image_background**: (true/false) True, if this is a background image, otherwise false. - **image_type**: (Integer) 1=png, 2=jpeg, 3=gif, 4=bmp, 5=svg, 6=avif, 7=tif, 8=webp, 9=apng, 10=heic, 11=icon, 12=base64, -1=Unknown - **image_rendered_width**: (integer) The rendered width of the image. - **image_rendered_height**: (integer) The rendered height of the image. - **pd_cdns_found**: (integer) The number of content delivery networks found, known to cause adverse delivery issues. - **pd_cdns_link_count**: (integer) The total number of links pointed to content delivery networks know to cause adverse delivery issues. - **preserve_media_queries**: (true/false) True, if all media queries were preserved. - **relative_links_base_url**: If set, this needs to be a full base URL like "[https://campaigncleaner.com/"](https://campaigncleaner.com/), if your email campaign has any relative paths, it will be converted to an absolute URL. In most instances, you won't need to set this. - **remove_successive_punctuation**: (true/false) if true, this will remove succession punctuation like ..., !!!!, $$$ to a single occurrence. - **remove_css_inheritance**: (true/false) If true, removes all elements of CSS that are inherited. Once CSS is inlined, the inherited CSS will be removed, for example if font-size of a parent tag is 15 pixels, there is no need for the font-size of the child tag to be specified as 15 pixels because it's inherited or computed from the parent tag, this reduces the size of your HTML Campaign. - **remove_classes_and_ids**: (_true_/false) If true, all the class and ID attributes after CSS Inlining was removed. - **remove_comments**: (true/false) If true, comments were stripped from both CSS and HTML. Comments are invisible in HTML and can trigger spam filters. - **remove_control_non_printable:** (true/false) If True, call non-printable and control characters are removed. - **remove_image_height:** (true/false) if true, the height style was removed from all images, preventing any image distortions. - **remove_large_widths_over**: (integer) Experimental: If sets removes all defined widths over the value set on non images and table tags. - **replace_diacritics**: (true/false) If true, diacritic characters like á were replaced with a normal characters equivalent. - **replace_non_ascii_characters**: (true/false) If true, all non-ascii characters were replaced with their ascii equivalent. For example, ❝ was replaced with **".** Non-ascii characters is of of the major spam trigger. - **resize_and_host**: (true/false) If true, all eligible images were resized, converted, and hosted on our CDN. Read more about this here: [Resize And Host](https://docs.campaigncleaner.com/features-settings/resize-and-host) - **spam_words_count**: (integer) The total number of spam words found in your campaign. - **spam_keyword_list**: (List of Spam Keywords) (keyword (string), count (integer) Array of all spam keywords found and the number of times they were found. - **keyword**: The spam Keyword or phrase. - **count**: The number of occurrences of the spam keyword. - **spam_keyword_ratio**: (double) The spam keyword ratio of the campaign. - **spam_keyword_max_acceptable_ratio**: (double) The max acceptable ratio for spam keywords for any campaign. - **successive_currency_marks**: (integer) The number of successive currency marks found "$$". - **successive_exclaimations**: (integer) The number of successive exclamation points found "!!". - **successive_question_marks**: (integer) The number of successive question marks found "??". - **successive_periods**: (integer) The number of successive periods found "..". - **surrounding_div**: A surrounding "div" added to your html with the following styles added. - **max_width**: The max-width style in pixels applied to the surrounding "div". - **text_align**: (left, center, right) All content within the surrounding "div" will be aligned according to the specified style. However, this can be over-written but setting "text-align" property on inner tags within the "div" to customize the appearance of your email. - **font_size**: The pixel size that set in the surrounding div to adhere to, this adds an "!important" to all font-sizes that are set on any tag in the HTML to maintain the font you want. While setting all unspecified font sizes to the size you choose. - **center_to_parent**: (true/false) If true, this will enable the surrounding "div" to be centered in any parent tags in which it is placed. This is particularly helpful when inserting an HTML snippet into a template - **text_link_max_acceptable_ratio**: (double) the max acceptable text to link ratio for any campaign. - **text_link_ratio**: (double) The text to link ratio of your campaign. - **text_image_max_acceptable_ratio**: (double) the max acceptable text to image ratio for any campaign. - **text_image_ratio**: (double) The text to image ratio of your campaign. - **total_word_count**: (integer) The total number of words found in your campaign. #### Additional Information: **HTTP Status Codes:** [https://developer.mozilla.org/en-US/docs/Web/HTTP/Status](https://developer.mozilla.org/en-US/docs/Web/HTTP/StatusIn) In addition to status codes listed in the document above. | **Status Code** | **Description** | | --- | --- | | 97 | Telephone Links start with tel: | | 98 | Email links, starts with mailto: | | 99 | Invalid URL - The provided website address is not valid. It may be a partial address, missing the necessary protocols (http or https), or has an incorrect format. | # Get Campaign List Source: https://docs.campaigncleaner.com/api-reference/endpoint/get-campaign-list GET /v1/get_campaign_list The **get_campaign_list** API endpoint allows you to get the status of all the campaigns you have saved on [Campaign Cleaner](https://campaigncleaner.com). #### Header: **X-CC-API-Key**: Your API Key #### Response: **campaign_list**: - **id**: The campaign id that will be used in other API calls. - **campaign_name**: The name of the campaign. - **status**: The status will be either _processing_, _completed_, or _paused_ - **date_added**: The date and time your campaign was saved or submitted to Campaign Cleaner. If the **status** is _completed_, you will be able to retrieve the campaign via the **get_campaign** API In the event of an error, you will get an "**error**:" response, with a description of the reason # Get Campaign PDF Analysis Source: https://docs.campaigncleaner.com/api-reference/endpoint/get-campaign-pdf-analysis POST /v1/get_campaign_pdf_analysis The **get_campaign_pdf_analysis** API allows you to retrieve the analysis report for any of your Saved Campaigns in Campaign Cleaner. #### Header: **X-CC-API-Key**: Your API Key #### Request Body: **campaign**: - **id**: The campaign id that will be used in other API calls. #### Response: An Application/pdf stream. # Get Campaign Status Source: https://docs.campaigncleaner.com/api-reference/endpoint/get-campaign-status POST /v1/get_campaign_status After submitting a campaign to be corrected and analyzed it can take up to a minute to finalize the results. You can check the status of your campaign with the **check_campaign_status** API. When you see a 'completed' status, you can call the **get_campaign** API to retrieve the results. #### Header: **X-CC-API-Key**: Your API Key #### Request Body: **campaign**: - **id**: The Campaign ID that you want to get the status for. #### Response: **campaign_list**: - **id**: The campaign id that will be used in other API calls. - **campaign_name**: The name of the campaign. - **status**: The status will be either _processing_, _completed_, or _paused_ - **date_added**: The date and time your campaign was saved or submitted to [Campaign Cleaner](https://campaigncleaner.com). If the **status** is _completed_, you will be able to retrieve the campaign via the **get_campaign** API In the event of an error, you will get an "**error**:" response, with a description of the reason # Get Credits Source: https://docs.campaigncleaner.com/api-reference/endpoint/get-credits GET /v1/get_credits The **get_credits** API will show you how many credits you currently have available. Credits are consumed by calling the **send_campaign** API endpoint. #### Response: - **Credits**: The amount of available credits you have on your account. In the event of any other error, you will get an "**error**:" response, with a description of the reason. # Get Inbox Test Results Source: https://docs.campaigncleaner.com/api-reference/endpoint/get-inbox-test-results POST /v1/get_inbox_test_results The **get_inbox_test_results** API allows you to retrieve the placement results for an inbox test created via the **create_inbox_test** API. Results are populated as seed mailboxes receive your campaign, so you may call this endpoint multiple times until the **status** is _Completed_. A **status** of _Processing_ means not all seed mailboxes have received your campaign yet. Check back in a few minutes. If some seeds never receive the email, the **status** will remain _Processing_ — ensure your campaign was sent to all addresses in the **send_to** list. #### Header: **X-CC-API-Key**: Your API Key #### Request Body: _Required:_ - **job_id**: The job ID returned from the **create_inbox_test** API. #### Response: - **job_id**: The unique ID of the inbox test. - **test_name**: The name of the inbox test. - **submitted_date**: The date and time the test was created. - **submitted_by**: The email address of the account that created the test. - **status**: Either _Processing_ or _Completed_. - **summary**: A high-level breakdown of results. - **total_seeds**: The total number of seed mailboxes in the test. - **received**: The number of seeds that have received the campaign so far. - **inbox**: The number of seeds where the campaign landed in the inbox. - **spam**: The number of seeds where the campaign landed in spam or junk. - **unknown_placement**: The number of seeds that received the email but placement could not be determined. - **pending**: The number of seeds still waiting to receive the campaign. - **inbox_rate**: The percentage of total seeds where the campaign landed in the inbox. - **spam_rate**: The percentage of total seeds where the campaign landed in spam. - **results**: A detailed per-seed breakdown. - **provider**: The email provider name (e.g. Gmail, Outlook, Yahoo). - **seed_address**: The seed email address. - **email_found**: (true/false) Whether the campaign was received by this seed. - **placement**: Where the campaign landed - Inbox, Spam, or Pending. - **spf_status**: The SPF authentication result for this seed. - **sender_ip**: The IP address the campaign was sent from. - **submission_result**: Additional detail about the submission result for this seed. In the event of an error, you will get an "**error**:" response with a description of the reason. # Send Campaign Source: https://docs.campaigncleaner.com/api-reference/endpoint/send-campaign POST /v1/send_campaign The **send_campaign** API Endpoint allows you to send in a campaign to be processed and analyzed by [Campaign Cleaner](https://campaigncleaner.com). Below is the list of settings that can be set, all optional settings, if not specified will default to the bold/italicized setting. All submitted campaigns will be sanitized. #### Header: **X-CC-API-Key**: Your API Key #### Request Body: _Required:_ **send_campaign**: - **campaign_html** : The full HTML of your campaign - **campaign_name**: The name of your campaign - campaign name must pass our sanitization checks. Campaigns are normally processed in under 2 minutes, in most instances in a few seconds. But in some cases with very large campaigns with lots of images and links it can take longer to check those links for blacklists, redirects. image sizes and more. Depending on the server where those links resources are located it can take longer. The send campaign, will return a campaign ID once we received it, you can use that campaign ID to check on the status, and retrieve your campaign when it's finished processing or you can supply us a webhook URL and we will send the results to you automatically. _Optional:_ **send_campaign**: - **adjust_font_colors**: (_**true**_/false), If true, certain bright colors are spam triggers, like "**red**" or "**#FF0000**", will be adjusted to a slightly different color like "**#FF0101"**, it will look the same, but won't trigger some spam filters. - **adjust_font_size**: (_**true**_/false) If true, you will be able to define the min and max font size allowed in pixels. If your newsletter contains larger or small font's it will adjust them to the min/max you define. - **convert_h_to_p_tags**: (true/**false**) If true, this will change all the H tags to P tags and set the correct font-size. - **convert_tables_to_divs:** (true/**false**) - This is an experimental feature to convert all the tables to divs, in certain instances with a complicated table structure you might need to edit the HTML. We recommend leaving this as false or not setting it. - **custom_info:** This field is for you to pass any additional data you want to send us, it will also be passed back to you when you call the get_campaign API. It's limited to 500 characters. - It must pass our sanitization checks. - **host_extensionless_images:** (true/**false**) If true, images without extensions will be hosted on our CDN when the **resize_and_host** parameter is set to true. Typically, dynamically generated images lack extensions, though there are exceptions. - **inline_css:** (**true**/false) When set to true, CSS styles are directly applied within the style attribute of each HTML element. - **inline_css_important:** (true/**false**) When set to true, the `!important` flag will also be inlined with CSS styles. If you are using media queries, it is generally recommended to keep this set to false. - **media_queries_important:** (**true**/false) When set to true, all media query styles will be marked with the `!important` flag. This ensures they can override any inline CSS without an `!important` flag. - **image_max_width:** (int) When this is specified, it will add an max-width style to all images. it is not desirable for the image width to exceed the default campaign width. - **min_font_size_allowed**: (_**10**_) (A positive Integer, under 100) The **min_font_size** must be smaller or equal to the **max_font_size** in pixels - **max_font_size_allowed**: (_**32**_) (A positive Integer under 100) The **max_font_size** must be larger or equal to the **min_font_size** in pixels - **preserve_media_queries**: (_**true**_/false) True, if media queries should be preserved. - **remove_classes_and_ids**: (_**true**_/false) If true, removes all the class and ID attributes after CSS Inlining. - **remove_comments**: (_**true**_/false), If true, comments are stripped from both CSS and HTML. Comments are invisible in html and can trigger spam filters. - **remove_css_inheritance**: (_**true**_/false) If true, removes all elements of CSS that are inherited. Once CSS is inlined, the inherited CSS will be removed, for example if font-size of a parent tag is 15 pixels, there is no need for the font-size of the child tag to be specified as 15 pixels because it's inherited or computed from the parent tag, this reduces the size of your HTML Campaign. - **remove_control_non_printable:** (**true**/false) If true, all non-printable and control characters are removed. - **remove_image_height:** (true/**false**) If true, the height style is removed from all images, preventing any image distortions. Only the width property should be set on images sent in emails. - **remove_large_widths_over**: (integer) Experimental: If sets removes all defined widths over the value set on non images and table tags. - **remove_successive_punctuation**: (true/**false**) If true, this will remove succession punctuation like ..., !!!!, $$$ to a single occurrence. - **relative_links_base_url**: If set, this needs to be a full base URL like "[https://campaigncleaner.com/"](https://campaigncleaner.com/), if your email campaign has any relative paths, it will be converted to an absolute URL. In most instances, you won't need to set this. - **replace_diacritics**: (**true**/false) If true, replaces diacritic characters like á with normal characters equivalent, if you're sending emails in English emails, this is a must. - **replace_non_ascii_characters**: (**true**/false) If true, replaces all non-ascii characters with their ascii equivalent. For example, ❝ will be replaced with **".** Non-ascii characters is of of the major spam trigger. - **resize_and_host**: (true/**false**) If true, we will resize, convert, and host all eligible images on our CDN. Please read our documentation here: [Resizing and Hosting](https://docs.campaigncleaner.com/features-settings/resize-and-host) - **surrounding_div:** When you set any parameter of the surrounding div, it will add "div" tag around your html with the styles you set. This is helpful to set default styles and conditions that can affect the look of your html. - **max_width:** The max-width style applied to the surrounding "div" can be specified in pixels as an integer value. It is typically set to the desired maximum width of the campaign, which is commonly either 600 or 900 pixels. - **text_align**: (left, center, right) All content within the surrounding "div" will be aligned according to your specified style. However, you can use the "text-align" property on inner tags within the "div" to customize the appearance of your email. - **font_size:** The pixel size that you want everything in the surrounding div to adhere to, setting this, will add an "_!important"_ to the font-size in the surrounding "div". Font sizes that are set on any tag in the HTML will retain their original size. While all unspecified font sizes to the size you chose. - **center_to_parent:** (true/false) Using this feature will enable the surrounding "div" to be centered in any parent tags in which it is placed. This is particularly helpful when inserting an HTML snippet into a template. - **webhook_url**: An endpoint that you provide us and when your campaign is fully processed we will send the results back that is found in the Get Campaign API. You can utilize the webhook section under API Management to troubleshoot and test your endpoint. #### Header: **X-CC-API-Key**: Your API Key #### Response: **campaign:** - **id**: The campaign id that will be used to retrieve your campaign using the get_campaign API. # API Documentation Source: https://docs.campaigncleaner.com/api-reference/introduction We offer a robust collection of APIs to allow you to integrate its functionality into your email marketing software and tools. [Campaign Cleaner](https://campaigncleaner.com) is the leader in ensuring that your campaigns don't affect your IP and Domain reputation, it's the most advanced toolset you'll find that gives you all the tools you need to keep your campaigns within acceptable ratios of many email and spam filtering software and automatically fixes your HTML by sanitizing all non-email friendly attributes and inlines all your CSS to be compatible with every email client. We offer a robust collection of API's to allow you to integrate its functionality into your email marketing software and tools. The `{{api_key}}` is located in your account on [Campaign Cleaner](https://members.campaigncleaner.com) under API Management API Keys. Use the navigation on the left to access the different **API Endpoints**. Or if you prefer we made our API Documentation available below. api-documentation-3.png **API Documentation Links:** * [Swagger](https://campaign-cleaner.github.io/swagger/) # Campaign Analysis Source: https://docs.campaigncleaner.com/campaign-cleaner/campaign-analysis Email Campaign Analysis provides a powerful tool for email marketers to analyze and optimize their HTML code. # Understand Your Email Campaign Analysis The HTML Analysis tab is organized into 9 user-friendly sections, with highlighted areas of concern in orange, so you can quickly identify and optimize your email campaign. Each section includes an "info" button for more details. Let's take a closer look at these sections # Punctuation, Caps and H Tags punctuation-4.png This section identifies common issues that can harm your email's deliverability by triggering spam filters. The ratios shown are the maximum recommended values, and it's always best to stay well below them. All-caps words and successive punctuation are among the most heavily weighted conditions that can land your emails in spam folders or promotions tabs. For more information about this section, please refer to the [Punctuation, Caps and H Tags](/features-settings/punctuation-caps-h-tags) settings. # Spam Keyword Ratio spam-keyword-ratio-1.png This section highlights any spam keywords found in the content of your email campaign. While it's nearly impossible to have zero spam keywords, having an excessive amount of them can raise a red flag. For instance, if a particular spam keyword, such as "Free," is used multiple times in conjunction with other spam keywords, it can make your email appear very spammy and suspicious. In this example, "Free" is used 7 times, which is considered high and may result in a lower deliverability rate. For more information about this section, please refer to the [Spam Trigger Detection](/features-settings/spam-trigger-detection) settings. # Link Summary broken-links-2.png This section conducts a comprehensive examination of every unique link in your email campaign, tracing each redirect until it arrives at the final destination. The goal of this scan is to confirm that there are no broken links in the sequence. You can conveniently view all the links, categorized, and their respective redirect destinations by clicking on the `#` next to each category. It will also notifies you of how many links have missing `TITLE` attributes it discovered and how many unsecured links it discoverd, These details are crucial to informat the user what the links are about and unsecured links can pose a security risk to your subscribers. For more information about this section, please refer to the [Broken Link Recursion Checker](/features-settings/link-summary) settings. # Text To Link Ratio text-link-2.png This section compares the number of links to the number of words found in your email and informs you if the ratio is above the maximum acceptable ratio. These details are crucial because having too many links can make your email look cluttered and unprofessional to your subscribers. The [Campaign Cleaner](https://campaigncleaner.com) provides you with an easy-to-read info card, highlighting these issues so that you can take action to optimize your email campaign. For more information about this section, please refer to the [Text To Link Analysis](/features-settings/text-to-link-analysis) settings. # Text to Image Ratio text-image-2.png This section compares the number of images to the number of words found in your email and informs you if the ratio is above the maximum acceptable ratio. It also notifies you of how many images have missing `ALT` attributes. These details are crucial because having too many images can make your email look cluttered and unprofessional. The [Campaign Cleaner](https://campaigncleaner.com) provides you with an easy-to-read info card, highlighting these issues so that you can take action to optimize your email campaign. For more information about this section, please refer to the [Text To Image Analysis](/features-settings/text-to-image-analysis) settings. # Blacklisted Domains blacklist-recursion-3.png In this section, we scan all links in your campaigns and their 301 redirects, checking them against various blacklists, phishing, and malware detection sites. This ensures that none of the links in your email pose a threat to your customers or your deliverability. For more information about this section, please refer to the [Blacklist Link Recursion Checker](/features-settings/blacklisted-links) settings. # Image Summary oversized-images-2.png This section of the email analysis tool focuses on checking the images used in your campaign. **Oversized Images:** It highlights any images that are larger then the space defined in the HTML. Clicking on the `Oversized Image Lists` will provide you with a list of these images, they can automatically be resized and hosted on our super fast global CDN Edge powered by Cloudflare. Don't worry at a click of a button, the HTML is also updated with the new image location. For more information about this section, please refer to the [Oversized Image Detection](/features-settings/image-summary) settings. **Unsupported Images:** * Background Images This section enables you to promptly determine whether you have included any background images in your email campaign. It is essential to note that background images may not be visible in several mail clients, such as Gmail. For more information about this section, please refer to the [Background Image Detection](/features-settings/background-image-detection) settings. * Unsupported Formats This feature will notify you if your email contains images in formats that are not broadly supported, such as .svg, .tiff, .heic, .avic, .apng, etc. Fear not, as our Resize and Host tool will automatically resize and convert these images to the universally supported .jpg format and host them on our ultra-fast global CDN edge powered by Cloudflare. The links in your email campaign will be seamlessly updated to reflect the new location. For more information about this section, please refer to the [Unsupported Image Detection](/features-settings/unsupported-image-detection) settings. # Poor Delivery CDN Detection poor-delivery-cdn-3.png This section highlights any CDNs (Content Delivery Networks) used in your email campaign that may have poor performance or a bad reputation. These CDNs can negatively impact the speed and reputation of your email campaigns, potentially leading to lower engagement rates or your emails being marked as spam. We understand that finding a new location to host your images can be challenging, so we offer you 5 GB of image hosting with any subscription. This service will automatically resize, host, and transfer your images to our high-speed global CDN edge, powered by Cloudflare. For more information about this section, please refer to the [Poor Delivery CDN Detection](/features-settings/poor-delivery-cdn-detection) settings. # Campaign Cleaner Source: https://docs.campaigncleaner.com/campaign-cleaner/clean-campaign Keep your email marketing campaigns in top shape with Campaign Cleaner. Optimize deliverability, design, and performance for better results. clean-campaign-1.png [Campaign Cleaner](https://campaigncleaner.com) is a powerful email marketing tool designed to help businesses improve the performance of their email campaigns with a single click of the green button. With advanced features and intuitive interfaces, Campaign Cleaner makes it easy to optimize your email marketing strategies, streamline your workflows, and boost your ROI. ## Key Features * **Advanced Cleaning Algorithms:** Campaign Cleaner automatically scans your email campaigns to identify and rectify issues such as broken links, missing images, and invalid HTML codes, ensuring flawless delivery to your subscribers. * **AI Spam Trigger Detection:** The tool identifies keywords that could trigger spam filters, enhancing the likelihood of your emails landing in the inbox. * **Resize, Convert and Host Images:** Campaign Cleaner optimizes your emails by automatically resizing and converting images to email-friendly formats. It also hosts the images on a fast global CDN, ensuring quick loading times and a visually appealing presentation in your campaign HTML. * **Email Inbox Previews:** Preview your emails across various email clients and devices to ensure consistent rendering and formatting. * **Accessibility Enhancements:** Features like ALT Tag Management ensure your emails are accessible and engaging even when images don't load. ## Integration and APIs Campaign Cleaner offers powerful APIs and integrations, allowing seamless connectivity with CRM systems, ESP's, and can easily be implemented into your own custom workflows. This enables real-time tracking and analysis of your email campaigns, facilitating data-driven optimizations. ## Ready to enhance your delivery? Campaign Cleaner has received accolades from various professionals, including Sales Managers, Marketing Specialists, and Business Owners, who commend its efficiency and impact on their email campaigns. Whether you are a small business owner or a large enterprise, [Campaign Cleaner](https://campaigncleaner.com) is a valuable tool for any email marketer looking to take their campaigns to the next level. With its comprehensive suite of features and powerful integrations, Campaign Cleaner can help you save time, increase your ROI, and deliver more effective email campaigns to your subscribers. So why wait? **Try [Campaign Cleaner](https://campaigncleaner.com) today and start optimizing your email marketing strategies like a pro!** # Import Campaigns Source: https://docs.campaigncleaner.com/campaign-cleaner/import-campaigns Submitting campaigns through email to Campaign Cleaner is a simple and convenient way to optimize your email campaigns. # Import an Existing Campaign Submitting your campaign to Campaign Cleaner is easy! Simply follow the steps outlined under "Submit Campaign," and we'll analyze your email directly from your campaign software. This allows you to make any necessary changes and ensure your email is optimized before it reaches your audience. If you import a campaign with [embedded images](/references/embedded-images), Campaign Cleaner will put those images on our Blazing Fast Public CDN and change the HTML to reference those images automatically. import-campaign-1.png # Saved Campaigns Source: https://docs.campaigncleaner.com/campaign-cleaner/saved-campaigns Keep track of your email campaign optimizations with saved campaigns. Easily access previous improvements to streamline your email marketing efforts. # Saved Campaigns - Everything You Need to Know This section enables you retreive all your saved email campaign and can store multiple versions of it for future reference. All campaigns submitted through email or API are saved in this section. You can easily load any saved campaign into the HTML editor by clicking on a `load` button or download it to a text file that can be imported into your email campaign tool. With this feature, you can effortlessly manage and keep track of your saved email campaigns by sorting, searching, and deleting as needed. This allows you to make changes without having to start from scratch each time. saved-campaign-1.png # Settings Source: https://docs.campaigncleaner.com/campaign-cleaner/settings Enhance the performance and deliverability of your email campaigns with advanced settings. Optimize your emails for better results. # Campaign Cleaner Settings - You're In Control [Campaign Cleaner](https://campaigncleaner.com) provides a wide range of settings that offer complete control over how your HTML is optimized, resulting in a boost in engagement and ROI. The settings are divided into three main sections for easy management: 1. Toggle Settings - These settings can be toggled on and off to control specific features of your campaign. 2. Advanced Settings - A lot of the magic happens here, as these settings consist of toggles and user input that control the dynamics of your campaign. 3. Always On Settings - These settings are based on analytics and won't change or update your Email Campaign's HTML, except for the mandatory CSS Inliner and HTML Sanitizer. 4. Save Settings - After configuring your desired settings, save them for quick reference. Create distinct presets for various use cases, streamlining your workflow and enhancing efficiency.. Each campaign can have different settings, and these settings are saved with your campaign. For new campaigns, the default settings are inherited from the previous campaign settings used. # Toggle Settings Here's a list of all the different toggle settings, please refer to the Feature & Settings section of the documentation to explore each of these settings. cc-settings-3.png cc-settings-4.png # Advanced Settings Here's a list of all the different advanced settings, please refer to the Feature & Settings section of the documentation to explore each of these settings. advance-settings-1.png advance-settings-2.png # Always On Settings Here's a list of all the different alwayus on settings, please refer to the Feature & Settings section of the documentation to explore each of these settings. always-on-1.png always-on-2.png always-on-3.png # Save Settings The save preset function is situated in the top-right corner of the settings page. Easily create and customize multiple presets for diverse use cases, optimizing your workflow and boosting overall efficiency. save-preset-2.png save-preset-1.png # Alt and Title Attribute Management Source: https://docs.campaigncleaner.com/features-settings/alt-and-title-attribute-management Learn why Alt and Title attributes are necessary in email and how they can improve the accessibility and deliverability of your email content. # Are ALT Descriptions and Link Titles Necessary? When it comes to designing HTML emails, including the right elements can make a big difference in terms of accessibility, deliverability, and user experience. One key element that should not be overlooked is the use of alt and title attributes in images and links. Alt attributes are used to provide alternative text descriptions for images in case they can't be displayed, either because of technical issues or user preferences (such as disabling images in email clients). By providing a concise and descriptive alt text, you can ensure that the content of the image is still conveyed to the recipient, even if they can't see the image itself. Title attributes, on the other hand, are used to provide additional information or context for links. When a user hovers over a link with their cursor, the title attribute can display a tooltip with additional information, such as a brief summary of the linked content or a call to action. This can help improve the user experience by providing more context and guidance for the user. Both alt and title attributes can also play a role in email deliverability. In some cases, email clients may use the presence and quality of alt text as a factor in determining whether an email is legitimate or spammy. By including meaningful and relevant alt text, you can help improve the legitimacy and trustworthiness of your email content in the eyes of spam filters. Similarly, by using descriptive and relevant title attributes, you can help reduce the risk of your email being flagged as suspicious or low-quality. This can help improve your email's deliverability and ensure that it reaches your intended audience. [Campaign Cleaner](https://campaigncleaner.com/) will point out any missing ALT and TITLE attributes on images and links, in the `Campaign Analysis` tab and also on the `Clean Campaign` tab. Below you will see an example under the `Campaign Analysis` tab, indicating that there are links and images missing the TITLE or ALT Attributes. text-link-1.png text-image-1.png Clicking the # next to `Images missing ALT Attribute`, brings up an easy to management tools to allow you to quickly update all your `ALT Descriptions` at once. There is a button to generate the "ALT Descriptions Automatically" using computer vision AI. alt-management-1.png Below is an example of the "ALT Descriptions" generated at a click of a button. alt-management-1.png Clicking the # next to `Links Missing TITLE Attribute`, brings up an easy to management tools to allow you to quickly update all your `TITLE Attributes` at once. title-management-1.png The Green button, "Use Link Text" allows to populate the Link Titles, using the text from the link really fast. Not all links have text, some have images in between, those you will need to update manually. title-management-1.png # Video Overview of ALT Attributes