Still using v1 of the API - how can that be? I'm following the instructions at https://www.cloudflare.com/technical-resources/#ddclient


#1

Cloudflare wrote to me today to say that I’m using v1 of their API not v4 and that I have two weeks to migrate to v4. In a panic I checked how we are updating our DDNS records in cloudflare and realised that we are using ddclient and following the instructions at https://www.cloudflare.com/technical-resources/#ddclient.

How then is it possible that we are using v1 of the API? Surely the instructions on cloudflares’ own website are using v4 of the API??? How can I work out what is really going on here? Did cloudflare send me this email in error?


#2

I have confirmed by running ddclient in verbose mode that it is contacting the API endpoint that Cloudflare have said that they are turning off on June 4th - https://www.cloudflare.com/api_json/

DEBUG: proxy =
DEBUG: url = https://www .cloudflare.com/api_json.html?a=rec_edit&type=A&ttl=1&name=toolsdev&z=removedforsecurity&id=881411359&email=removedforsecurity&tkn=removedforsecurity&content=52.205.118.123
DEBUG: server = www .cloudflare.com
CONNECT: www .cloudflare.com
CONNECTED: using SSL
SENDING: GET /api_json.html?a=rec_edit&type=A&ttl=1&name=toolsdev&z=removedforsecurity&id=881411359&email=removedforsecurity&tkn=removedforsecurity&content=52.205.118.123 HTTP/1.0

I’ve also confirmed from that same verbose output that the ddclient that is running is the one that was downloaded from sourceforge as directed by cloudflare’s instructions:
SENDING: User-Agent: ddclient/3.8.3

It seems to me that since cloudflare are still telling people that they can use ddclient, they should update their instructions and give us an extra month or two before retiring this end point, in order to give users who’ve followed their instructions time to update them.

(please note that I’ve deliberately broken links in this output with a space after www because “new users can only post 2 links in a post” prevented me from posting)


#3

I’m getting this warning because I’m calling the API from an old Mac Mini that’s using an outdated version of OpenSSL. This is one of the reasons outlined in the email I received:


#5

Thanks sdayman, it looks like mine is a different issue to yours. This is the message they sent me:

Hi there,

You are receiving this message because we determined your api key was used to make v1 Client API calls in the last 30 days. On June 4, 2018, the v1 API will be retired, meaning all calls to the API endpoint (https://www .cloudflare.com/api_json/) will be rejected from that point forward.

In 2016, Cloudflare announced the deprecation of our v1 API in favor of the v4 API. You can find instructions on migrating from v1 to v4 in our migration guide.

Please contact Cloudflare support with any questions you may have.

Thanks,
Garrett Galow
Cloudflare

Note: links deliberately broken in message above as I wasn’t allowed to post them!


#6

Hey Stephen,

I ran into this same problem. The email is not in error - you will be cut off on June 4th unless you do something.

The current release 3.8.3 of ddclient is from May 30, 2015 and uses the v1 API. They have updated the code since then (most recently on April 30, 2017) to use the v4 API but have not done a release since the update. It seems to me that ddclient is not well-maintained any more but I digress. As a side note all versions of ddclient at packages.debian.org are based on the old 3.8.3 release from 2015 as well.

Rather than clicking the green “download now” button on Sourceforge if you navigate to here

https://sourceforge.net/p/ddclient/code/HEAD/tree/trunk/

this ddclient code uses the v4 API. I don’t know much about Perl so I can’t help you implement it but hopefully if you download the script it will just run for you. I am using ddclient on a Ubiquiti EdgeRouter and it would not “just run” but the fantastic development team over there has already written a patch. If you are using an ER please check this thread on their forum


#7

FYI, after downloading the version linked by jaredmepp, I had to update my ddclient.conf file to remove this line:

server=www.cloudflare.com

If you leave that line in, it overrides the script’s default location of the API server with the value indicated here.


#8

Thank you all for your advice. Still very unimpressed that cloudflare are recommending a solution that is not maintained (read - clearly broken) and are not giving people extra time to fix it since the solution they have recommended doesn’t work…

Based on the comments here I decided it would be wiser to avoid using an unmaintained package (partly because I don’t want to be compiling anything) and to change to a curl based solution as documented here: https://www.rohanjain.in/cloudflare-ddns/ as it has the advantage of not being a “black box” that I don’t understand the insides of like ddclient is.
Thanks again for all your comments.


#9

I came here because of the same conundrum, using ddclient and cloudflare EOL’ing the api it’s using.

Thanks stephen for the link, minimal and gets the job done.