Kalo te dokumentacioni
API

Konfiguroni DNS-në e një domeni

Nëse OpenEmail i shkruan vetë regjistrimet e një domeni, përmes cilës zonë të lidhur, dhe në çfarë gjendje është çdo lloj regjistrimi.

GET/domains/{id}/dns

Ekzekuton cilëndo nga 3 thirrjet në hapësirën tuaj të punës.

GET /domains/{id}/dns

Nëse OpenEmail i shkruan vetë regjistrimet e një domeni, përmes cilës zonë të lidhur, dhe në çfarë gjendje është çdo lloj regjistrimi.

Lexoni konfigurimin

Kërkon domains:read. managing është true ndërsa OpenEmail i shkruan vetë regjistrimet. zone tregon cila zonë e lidhur përgjigjet për domenin: resolved kur është një, ambiguous kur janë disa dhe duhet zgjedhur, none kur nuk e mban asnjë, ose unusable kur lidhjet nuk mund të pyeteshin. Shtoni ?refresh=true për t'i pyetur sërish ofruesit.

curl
curl "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/dns" -H "$AUTH"
Përgjigje
{  "object": "domain_dns",  "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",  "domain": "acme.com",  "managing": true,  "connectionId": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",  "connection": {    "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",    "status": "active",    "subject": "[email protected]",    "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }]  },  "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",  "zoneName": "acme.com",  "zoneHolder": "Acme",  "state": "ready",  "steps": [    { "purpose": "mx", "ok": true, "detail": "MX records are in place.", "visibility": "public", "records": [] }  ],  "leftovers": [],  "probe": null,  "error": null,  "syncedAt": "2026-09-30T08:01:12.000Z",  "zone": {    "kind": "resolved",    "checkedAt": "2026-10-01T09:00:00.000Z",    "cached": true,    "candidate": {      "connectionId": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",      "subject": "[email protected]",      "status": "active",      "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],      "account": { "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" },      "zone": {        "id": "023e105f4ecef8ad9ca31a8372d0c353",        "name": "acme.com",        "accountId": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708",        "active": true,        "status": "active",        "type": "full",        "nameServers": ["ana.ns.cloudflare.com", "bob.ns.cloudflare.com"],        "covers": true      }    },    "candidates": [],    "reason": null,    "connected": null,    "host": null,    "blocked": []  }}

leftovers liston regjistrimet që OpenEmail shkroi dhe nuk mundi t'i tërhiqte, për t'i fshirë me dorë te ofruesi.

Zgjidhni zonën

Kërkon domains:write. PUT /domains/{id}/dns me { connectionId, zoneId } e lidh domenin me një zonë kur disa mund të përgjigjen për të. Zona duhet ta mbulojë domenin, të jetë aktive dhe të pranojë një regjistrim prove. Ende nuk shkruhet asgjë.

curl
curl -X PUT "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/dns" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "connectionId": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d", "zoneId": "023e105f4ecef8ad9ca31a8372d0c353" }'
Përgjigje
{  "object": "domain_dns",  "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",  "domain": "acme.com",  "managing": true,  "connectionId": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",  "connection": {    "id": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",    "status": "active",    "subject": "[email protected]",    "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }]  },  "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",  "zoneName": "acme.com",  "zoneHolder": "Acme",  "state": "awaiting-sync",  "steps": [    { "purpose": "mx", "ok": true, "detail": "MX records are in place.", "visibility": "public", "records": [] }  ],  "leftovers": [],  "probe": null,  "error": null,  "syncedAt": "2026-09-30T08:01:12.000Z",  "zone": {    "kind": "resolved",    "checkedAt": "2026-10-01T09:00:00.000Z",    "cached": true,    "candidate": {      "connectionId": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",      "subject": "[email protected]",      "status": "active",      "accounts": [{ "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" }],      "account": { "id": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708", "name": "Acme" },      "zone": {        "id": "023e105f4ecef8ad9ca31a8372d0c353",        "name": "acme.com",        "accountId": "4f1c2b3a5d6e7f8091a2b3c4d5e6f708",        "active": true,        "status": "active",        "type": "full",        "nameServers": ["ana.ns.cloudflare.com", "bob.ns.cloudflare.com"],        "covers": true      }    },    "candidates": [],    "reason": null,    "connected": null,    "host": null,    "blocked": []  }}

Një zonë që nuk e mbulon domenin është 422 invalid_parameter te zoneId. Një domen i konfiguruar përmes një zone tjetër është 409 dns_zone_conflict, dhe një zonë që nuk është aktive ose që e refuzon regjistrimin e provës është 409 dns_zone_unusable.

Një token qasjeje OAuth ka nevojë për një kod verifikimi për këtë thirrje. Derisa aplikacioni të ketë verifikuar një në 60 minutat e fundit, thirrja përgjigjet me 403 step_up_required dhe nuk ndryshon asgjë. Një çelësi API nuk i kërkohet kurrë. Faqja Autentikimi tregon si të kërkoni një kod dhe ta verifikoni.

Shkruani regjistrimet

Kërkon domains:write. POST /domains/{id}/dns/sync shkruan ose riparon çdo regjistrim që i duhet domenit, ashtu si bën Sinkronizo në aplikacion, dhe e lidh fillimisht zonën kur përgjigjet vetëm një. Dërgoni { "purpose": "dmarc" } për të shkruar vetëm një lloj regjistrimi.

curl
curl -X POST "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/dns/sync" -H "$AUTH"
Përgjigje
{  "object": "domain_dns_sync",  "outcome": "synced",  "message": null,  "attached": false,  "provision": {    "outcome": "applied",    "state": "ready",    "connectionId": "dnsl_3f9a1c2e7b4d4e6f8a0b2c3d",    "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",    "proven": true,    "ownership": "The ownership record is in place.",    "written": [{ "purpose": "dmarc", "name": "_dmarc.acme.com", "type": "TXT", "mode": "created" }],    "adopted": 6,    "conflicts": [],    "failures": [],    "steps": [],    "retired": [],    "leftovers": [],    "probe": null,    "error": null  },  "dns": { "object": "domain_dns", "domain": "acme.com", "managing": true, "state": "ready", "…": "…" },  "zone": { "kind": "resolved", "cached": false, "…": "…" }}

Kur nuk përgjigjet një zonë e vetme, nuk shkruhet asgjë: outcome është refused, message tregon pse, dhe zone liston zonat nga të cilat duhet zgjedhur.

Një sinkronizim që po ekzekutohet tashmë në domen është 409 dns_busy, dhe një ofrues që e refuzon kërkesën është 502 dns_provider_error. Një domen që pret regjistrimet e veta verifikohet sapo ato të jenë në vend.

Një token qasjeje OAuth ka nevojë për një kod verifikimi për këtë thirrje. Derisa aplikacioni të ketë verifikuar një në 60 minutat e fundit, thirrja përgjigjet me 403 step_up_required dhe nuk ndryshon asgjë. Një çelësi API nuk i kërkohet kurrë. Faqja Autentikimi tregon si të kërkoni një kod dhe ta verifikoni.

Referencë