{"id":13471167,"url":"https://github.com/nikhiljohn10/ddnslab","last_synced_at":"2025-10-28T09:30:26.209Z","repository":{"id":76837634,"uuid":"192770181","full_name":"nikhiljohn10/ddnslab","owner":"nikhiljohn10","description":"Cloudflare DDNS Worker API","archived":false,"fork":false,"pushed_at":"2022-12-01T18:33:20.000Z","size":3400,"stargazers_count":18,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-01T13:35:19.528Z","etag":null,"topics":["cloudflare-api","ddns-worker"],"latest_commit_sha":null,"homepage":"https://ddnslab.nikz.in/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikhiljohn10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-06-19T16:42:01.000Z","updated_at":"2024-10-15T22:33:42.000Z","dependencies_parsed_at":"2024-01-13T18:03:27.365Z","dependency_job_id":"d691075c-b446-4955-9677-b356be3045d8","html_url":"https://github.com/nikhiljohn10/ddnslab","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhiljohn10%2Fddnslab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhiljohn10%2Fddnslab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhiljohn10%2Fddnslab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikhiljohn10%2Fddnslab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikhiljohn10","download_url":"https://codeload.github.com/nikhiljohn10/ddnslab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238623790,"owners_count":19503103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare-api","ddns-worker"],"created_at":"2024-07-31T16:00:40.893Z","updated_at":"2025-10-28T09:30:20.516Z","avatar_url":"https://github.com/nikhiljohn10.png","language":"CSS","funding_links":[],"categories":["CSS"],"sub_categories":[],"readme":"# Cloudflare DDNS Worker API\n\n**Author: Nikhil John [(@nikhiljohn10 / @nikzjon)](https://github.com/nikhiljohn10)**\n\n### Prerequisite\n\n- Owns a Domain Name which uses CLoudFlare (eg: example.com).\n- Cloudflare API Token created with Zone.Zone.Read \u0026 Zone.DNS.Edit permissions.\n\n### Usage\n\n**HTTPS Request**\n\n```\nMethod: POST\nURL: https://ddnslab.nikz.in\nContentType: application/json\nBody: {\n  apiToken: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n  recordName: \"The A Record name created for DDNS client\",\n  proxied: true/false\n}\n```\n\nExample using CURL for Linux Terminal:\n\n```\ncurl -X POST \"https://ddnslab.nikz.in/\" -H \"Content-Type: application/json\" --data '{\"apiToken\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"recordName\":\"home.example.com\",\"proxied\": true}'\n```\n\nExample using Node.JS for Linux Users:\n\n```\nconst https = require('https')\n\nconst data = JSON.stringify({\n  \"apiToken\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n  \"recordName\":\"home.example.com\",\n  \"proxied\": true\n})\n\nconst options = {\n  hostname: 'https://ddnslab.nikz.in/',\n  port: 443,\n  path: '/',\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json'\n  }\n}\n\nconst req = https.request(options, (res) =\u003e {\n  res.on('data', (d) =\u003e {\n    process.stdout.write(d)\n  })\n})\n\nreq.on('error', (error) =\u003e {\n  console.error(error)\n})\n\nreq.write(data)\nreq.end()\n```\n\nExample using Batch File for Windows Users:\n\n```\n@echo off\n\ntitle CloudFlare DDNS Service\necho Initiating service...\n:loop\ncurl https://ddnslab.nikz.in/ -H Content-Type:application/json --data \"{\\\"apiToken\\\":\\\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\\",\\\"recordName\\\":\\\"home.example.com\\\",\\\"proxied\\\":true}\"\necho ^: %date% %time%\ntimeout /t 60 /nobreak \u003e NUL\ngoto loop\npause\n```\n\n**Notes:**\n\n1. API Token is to be created in CloudFlare (My Profile \u003e API Tokens \u003e Create Token)\n2. API Token permissions needed are Zone.Zone.Read \u0026 Zone.DNS.Edit\n3. Note down the API Token somewhere safe after creation as there is no option to display it again\n4. Use only HTTPS protocol for security reason.\n5. Set proxied to false if you wish to access DDNS location with port which are not allowed by CloudFlare.\n\n### References\n\n[CloudFlare API Documentation](https://api.cloudflare.com)\n\n[DDNS Worker Code](https://github.com/jwala-diamonds/ddnslab.tech/blob/master/worker.js)\n\n[CloudFlare Worker Documentation](https://developers.cloudflare.com/workers/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikhiljohn10%2Fddnslab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikhiljohn10%2Fddnslab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikhiljohn10%2Fddnslab/lists"}