diff --git a/source/_integrations/cloudflare.markdown b/source/_integrations/cloudflare.markdown
index f8637173d6f..d97301e80a7 100644
--- a/source/_integrations/cloudflare.markdown
+++ b/source/_integrations/cloudflare.markdown
@@ -7,7 +7,9 @@ ha_release: 0.74
ha_iot_class: Cloud Push
ha_codeowners:
- '@ludeeus'
+ - '@ctalkington'
ha_domain: cloudflare
+ha_config_flow: true
---
With the `cloudflare` integration, you can keep your Cloudflare records up to date.
@@ -26,43 +28,25 @@ Due to a limitation in the Cloudflare API, you can not use this integration with
-## Setup
+## Requirements
-You can find your global API key in your Cloudflare account settings.
+
+
+On older versions of Home Assistant, this integration used the account email and Global API Key to authenticate.
+
+As of Home Assistant 0.117, API Tokens are now used to authenticate.
+
+
+
+Setup requires an API Token created with Zone:Zone:Read and Zone:DNS:Edit permissions for all zones in your account.
+
+An easy way to create this is to start with the "Edit zone DNS" template then add Zone:Zone:Read to the permissions.
+
+[Cloudflare API Tokens Guide](https://developers.cloudflare.com/api/tokens/create)
## Configuration
-To use the integration in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-cloudflare:
- email: YOUR_EMAIL_ADDRESS
- api_key: YOUR_GLOBAL_API_KEY
- zone: EXAMPLE.COM
- records:
- - ha
- - www
-```
-
-{% configuration cloudflare %}
-email:
- description: The email address for your Cloudflare account.
- required: true
- type: string
-api_key:
- description: The global API key for your Cloudflare account.
- required: true
- type: string
-zone:
- description: The DNS zone (domain) you want to update.
- required: true
- type: string
-records:
- description: A list of records (subdomains) you want to update.
- required: true
- type: list
-{% endconfiguration %}
+Go to the integrations page in your configuration and click on new integration -> Cloudflare.
## Additional information
@@ -70,10 +54,6 @@ records:
This platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address.
-### API Key
-
-Please note that the `api_key` is the [global API key](https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys#12345682) of your Cloudflare account (not the API Token).
-
### Home Assistant Companion App
If you would like to use [iOS App](https://companion.home-assistant.io/) via Cloudflare set **Minimum TLS version as 1.2**, in order to do that, do the following:
@@ -89,20 +69,6 @@ Other settings should not cause any issues.
For SSH usage (according to [this](https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/) source), you need to connect directly to your server (bypassing Cloudflare). To do that, create a `CNAME` DNS record, e.g., `ssh.example.com`, with proxy status as "DNS only" (to do that click on orange icon, it will change color to gray) and then connect to `ssh.example.com` using your server SSH port.
-### Using Cloudflare domain only for Home Assistant
-
-If you want to update just a main domain, place in the records list only your domain, e.g., `example.com`. It will update your `A` DNS record with your IP every hour.
-
-```yaml
-# Example configuration.yaml entry for one domain
-cloudflare:
- email: YOUR_EMAIL_ADDRESS
- api_key: YOUR_GLOBAL_API_KEY
- zone: EXAMPLE.COM
- records:
- - EXAMPLE.COM
-```
-
#### The minimum DNS record settings (if you have set up HTTPS already)
To redirect from your domain to the IP address of your Home Assistant server set this DNS record: