{"id":37175349,"url":"https://github.com/libdns/dnsexit","last_synced_at":"2026-01-14T20:28:34.117Z","repository":{"id":270535872,"uuid":"910244602","full_name":"libdns/dnsexit","owner":"libdns","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-13T21:34:20.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T21:40:47.239Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/libdns.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-30T19:21:53.000Z","updated_at":"2025-05-13T21:34:23.000Z","dependencies_parsed_at":"2025-01-01T05:00:00.704Z","dependency_job_id":"81289c1a-845d-426e-aec3-d819f534683b","html_url":"https://github.com/libdns/dnsexit","commit_stats":null,"previous_names":["libdns/dnsexit"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/libdns/dnsexit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Fdnsexit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Fdnsexit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Fdnsexit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Fdnsexit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libdns","download_url":"https://codeload.github.com/libdns/dnsexit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libdns%2Fdnsexit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-14T20:28:33.404Z","updated_at":"2026-01-14T20:28:34.107Z","avatar_url":"https://github.com/libdns.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"DNSExit for [`libdns`](https://github.com/libdns/libdns)\n=======================\n\n[![Go Reference](https://pkg.go.dev/badge/test.svg)](https://pkg.go.dev/github.com/libdns/dnsexit)\n\nThis package implements the [libdns interfaces](https://github.com/libdns/libdns) for DNSExit, allowing you to manage DNS records.\n\nConfiguration\n=============\n\n[DNSExit API documentation](https://dnsexit.com/dns/dns-api/) details the process of getting an API key.\n\nTo run clone the `.env_template` to a file named `.env` and populate with the API key and zone. Note that setting the environment variable 'LIBDNS_DNSEXIT_DEBUG=TRUE' will output the request body, which includes the API key.\n\nExample\n=======\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/libdns/dnsexit\"\n\t\"github.com/libdns/libdns\"\n)\n\nfunc main() {\n\tkey := os.Getenv(\"LIBDNS_DNSEXIT_API_KEY\")\n\tif key == \"\" {\n\t\tfmt.Println(\"LIBDNS_DNSEXIT_API_KEY not set\")\n\t\treturn\n\t}\n\n\tzone := os.Getenv(\"LIBDNS_DNSEXIT_ZONE\")\n\tif zone == \"\" {\n\t\tfmt.Println(\"LIBDNS_DNSEXIT_ZONE not set\")\n\t\treturn\n\t}\n\n\tp := \u0026dnsexit.Provider{\n\t\tAPIKey: key,\n\t}\n\n\trecords := []libdns.Record{\n\t\t{\n\t\t\tType:  \"A\",\n\t\t\tName:  \"test\",\n\t\t\tValue: \"198.51.100.1\",\n\t\t},\n\t\t{\n\t\t\tType:  \"AAAA\",\n\t\t\tName:  \"test\",\n\t\t\tValue: \"2001:0db8::1\",\n\t\t},\n\t\t{\n\t\t\tType:  \"TXT\",\n\t\t\tName:  \"test\",\n\t\t\tValue: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n\t\t},\n\t}\n\n\tctx := context.Background()\n\t_, err := p.SetRecords(ctx, zone, records)\n\tif err != nil {\n\t\tfmt.Printf(\"Error: %v\", err)\n\t\treturn\n\t}\n}\n```\n\nCaveats\n=======\n\nThe API does not include a GET method, so fetching records is done via Google DNS. There will be some latency.\n\nIf an 'A' and 'AAAA' record have the same name, deleting either of them will remove both records.\n\nIf multiple record updates are sent in one request, the API may return a code other than 0, to indicate partial success. This is currently judged as a fail and API error message is returned instead of the successfully amended records. \n\nMX records have mail-zone and mail-server properties, which do not exist in the LibDNS record type, so updating these has not been fully implemented. 'name' can be used instead to specify the mail server, but there is no way to specify the mail-zone. See https://dnsexit.com/dns/dns-api/#example-update-mx\n\nFor [Dynamic DNS](https://dnsexit.com/dns/dns-api/#dynamic-ip-update) DNSExit recommend their dedicated GET endpoint, which can set the domain's IP to the one making the request. That is not implemented in this library.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibdns%2Fdnsexit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibdns%2Fdnsexit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibdns%2Fdnsexit/lists"}