Napomena o beta verziji: Ova API dokumentacija je beta. Endpointi, polja, kodovi grešaka i ponašanja mogu se promeniti bez najave i kompatibilnost unazad nije zagarantovana. Izbegavajte da se oslanjate na nju za kritične produkcijske tokove rada.

Početak rada sa našim RESTful API-jem

Dynadot API je dizajniran za besprekornu integraciju sa vašim sistemima. Naš API ima predvidive URL-ove orijentisane ka resursima, podržava JSON-kodirana tela zahteva, vraća JSON-kodirane i XML-kodirane odgovore i pridržava se standardnih HTTP metoda, autentifikacije i statusnih kodova.

Dynadot API možete koristiti i u testnom i u režimu uživo. Režim se određuje pomoću API ključa koji se koristi za autentifikaciju vaših zahteva. Testni režim vam omogućava da simulirate i validirate svoju API integraciju bez uticaja na podatke ili transakcije uživo.

Dynadot API je prvenstveno fokusiran na upravljanje domenima, obradu porudžbina i povezane usluge. Možete obavljati radnje kao što su registracija, prenos i obnavljanje domena, upravljanje DNS podešavanjima, i pregled ili ažuriranje porudžbina naloga.

Molimo imajte na umu: Masovno kreiranje, ažuriranje i brisanje nije podržano, a svaki od tih tipova zahteva je ograničen na jedan objekat ili radnju.

Generisanje vaših API ključeva

Pre nego što počnete da upućujete bilo kakve API zahteve, neophodno je da generišete svoj API ključ i API tajnu.

Ovi ključevi su neophodni za autentifikaciju i za bezbednost vaših radnji pri interakciji sa našim API-jem.

Možete generisati i API ključ i API tajnu kroz API sekciju u podešavanjima naloga.

1. Prijavite se na svoj nalog na sajtu Dynadot.

2. Idite na Alati > API.

3. Generišite svoj API ključ i API tajna sa ove stranice.

Pridružite se našoj zajednici

Imate neku ideju ili predlog? Razgovarajte direktno sa našim profesionalnim inženjerima.

Discord

HTTP metoda

API koristi standardne HTTP metode za izvršavanje operacija nad resursima:

MetodOpis
GETGET zahtev: Preuzimanje detaljnih informacija o navedenom resursu
POSTPOST zahtev: Kreiraj novi resurs
PUTPUT zahtev: Potpuno ažuriranje navedenog resursa
DELETEDELETE zahtev: Uklonite navedeni resurs

URL

Osnovni URL za sve API zahteve je:

https://api.dynadot.com/

Format punog URL-a:

http://api.dynadot.com/restful/version_code/resource/{resource_identify}/action
Primer :
https://api.dynadot.com/restful/v2/domains/{domain_name}/search

Verzija

Trenutna verzija API-ja je v2.0.0

Kada sastavljate URL za API zahtev, potrebno je da uključite samo glavnu verziju. Manje izmene i zakrpe su dizajnirane da budu kompatibilne unazad i neće uneti promene koje kvare vaš postojeći kod. To obezbeđuje stabilnost dok vam omogućava da iskoristite inkrementalna poboljšanja i ispravke bez potrebe da menjate svoju implementaciju.

Kada budu objavljene buduće verzije, zadržaćemo unazadnu kompatibilnost za starije verzije određeno vreme. Nove funkcije i promene koje prekidaju kompatibilnost biće uvedene u glavnim inkrementima verzije.

Zaglavlje

Zaglavlje API zahteva sadrži metapodatke o zahtevu. Ovi metapodaci pružaju ključni kontekst serveru da pravilno obradi zahtev. Često korišćena zaglavlja uključuju:

Content-Type

Određuje format podataka koji se šalju u telu zahteva. Server koristi ove informacije da pravilno parsira zahtev. Trenutno je jedina prihvatljiva vrednost: application/json

Primer :
Content-Type: application/json

Prihvati

Obaveštava server o formatu odgovora koji klijent očekuje.

Moguće vrednosti: application/json, application/xml

Primer :
Accept: application/json

Autorizacija

Svi API zahtevi moraju da sadrže API ključ za autentifikaciju. Svoj API ključ možete dobiti na kontrolnoj tabli naloga.

Možete da generišete API ključ na stranici za podešavanje API-ja
Primer zaglavlja za autentifikaciju :
Authorization: Bearer YOUR_API_KEY

X-Request-ID

Zaglavlje X-Request-ID je (Opciono) zaglavlje koje se koristi za jedinstvenu identifikaciju svakog API zahteva. Kada je uključeno, ovo zaglavlje pomaže u praćenju i povezivanju zahteva kroz sisteme i dnevnike, što olakšava otklanjanje grešaka i praćenje API aktivnosti.

Vrednost X-Request-ID mora biti validan UUID (univerzalni jedinstveni identifikator), po standardnom formatu: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (npr., 123e4567-e89b-12d3-a456-426614174000).

Primer :
X-Request-ID: 550e8400-e29b-41d4-a716-446655440000

X-Signature Novo

X-Signature zaglavlje je obavezan bezbednosni mehanizam za transakcione zahteve, uključujući one koji preuzimaju osetljive informacije ili ažuriraju podatke. Ono obezbeđuje autentičnost, integritet i neporecivost API zahteva tako što od klijenata zahteva da potpišu sadržaj zahteva koristeći HMAC-SHA256.

Da biste generisali potpis, potrebne su vam sledeće vrednosti

1. API ključ: Vaš jedinstveni API ključ.

2. Puna putanja i upit: Puna putanja API endpoint-a zajedno sa parametrima upita.

3. X-Request-Id: ID zahteva. Ako nije dostupan, možete uneti prazan string.

4. Telo zahteva: Telo zahteva. Ako je prazno ili null, možete uneti prazan string.

String koji treba potpisati je kombinacija gore navedenih vrednosti, spojenih u sledećem redosledu:

apiKey + "\n" + fullPathAndQuery + "\n" + (xRequestId or empty String) + "\n" + (requestBody or empty String)
Primer
apiKey = "your_api_key"
fullPathAndQuery = "/restful/v2/some/endpoint?param=value"
xRequestId = "unique-request-id"
requestBody = "{\"key\":\"value\"}"

stringToSign = "your_api_key\n/restful/v2/some/endpoint?param=value\nunique-request-id\n{\"key\":\"value\"}"
Generišite HMAC-SHA256 potpis.

Nakon konstruisanja stringToSign, izračunajte potpis koristeći HMAC-SHA256 sa vašim tajna kao ključem, zatim Base64 kodiranje rezultat.

Potpis se generiše pomoću sledećih koraka:

1. Koristite HMAC-SHA256 algoritam.

2. Koristite stringToSign (UTF-8) kao ulaznu poruku.

3. Koristite svoju tajnu (UTF-8) kao ključ.

4. Kodirajte HMAC izlaz u Base64 (standardni Base64)

Primenite generisani Potpis kao vrednost X-Signature u zaglavlju zahteva

Example :
X-Signature: {HMAC-SHA256 Signature}
Example Code :
import base64
import hashlib
import hmac
import uuid

def create_signature(api_key, api_secret, full_path_and_query, x_request_id, request_body=""):
    string_to_sign = (
        api_key + "\n" +
        full_path_and_query + "\n" +
        (x_request_id or "") + "\n" +
        (request_body or "")
    )

    digest = hmac.new(
        api_secret.encode("utf-8"),
        string_to_sign.encode("utf-8"),
        hashlib.sha256
    ).digest()

    return base64.b64encode(digest).decode("utf-8")

api_key = "your_api_key"
api_secret = "your_secret"
full_path_and_query = "/restful/v2/accounts/info"
x_request_id = str(uuid.uuid4())
request_body = ""

x_signature = create_signature(
    api_key,
    api_secret,
    full_path_and_query,
    x_request_id,
    request_body
)

print("X-Request-ID:", x_request_id)
print("X-Signature:", x_signature)

Telo

Telo API zahteva se koristi za slanje podataka serveru. Obično se uključuje u POST, PUT ili PATCH zahteve (obično ne u GET ili DELETE zahteve).

Format sadržaja

Format podataka u telu određen je zaglavljem Content-Type. Neki uobičajeni formati uključuju:

JSON

Tipični slučajevi upotrebe

POST zahtevi: POST metoda se koristi za kreiranje novog resursa na serveru. Telo zahteva obično sadrži detalje resursa..

PUT zahtevi: PUT metod se koristi za ažuriranje postojećeg resursa tako što ga u potpunosti zamenjuje. Telo zahteva sadrži kompletan ažurirani resurs.

DELETE zahtevi: DELETE metoda se koristi za uklanjanje postojećeg resursa sa servera. Ne poseduje telo zahteva.

GET zahtevi: GET metoda se koristi za preuzimanje postojećeg resursa sa servera. Ne poseduje telo zahteva

Format odgovora

Svi API odgovori se vraćaju u JSON ili XML formatu, a format podataka u telu određuje Accept zaglavlje, uz pružanje traženih podataka ili poruke o grešci, ako je primenljivo.

Format sadržaja

Odgovor generalno sadrži 3 dela: Kod, Poruka, Podaci

Kod: Status zahteva

Poruka: Detaljniji opis statusa

Podaci: Telo odgovora

JSON/XML

Obrada grešaka

HTTP statusni kodovi su standardizovani trocifreni brojevi koje server vraća da bi označio ishod zahteva klijenta. Oni pružaju ključne informacije o tome da li je zahtev uspešno obrađen, zahteva dodatnu akciju ili je naišao na grešku. Ovi kodovi su podeljeni u pet kategorija, od kojih svaka predstavlja poseban tip odgovora.

Statusni kodovi našeg API-ja prate HTTP/1.1 protokol, široko prihvaćen standard koji obezbeđuje doslednu i pouzdanu komunikaciju. Korišćenjem HTTP/1.1 koristimo prednosti kao što su trajne veze i poboljšano keširanje da optimizujemo interakcije klijent-server.

2xx (Uspešno): Označava da je komanda primljena i prihvaćena
4xx (Greška klijenta): Ukazuje da je klijent napravio grešku u zahtevu, kao što je slanje nevažećih podataka ili nedostatak odgovarajuće autorizacije.
5xx (Greška na serveru): Označava da je server naišao na grešku ili ne može da ispuni zahtev.

Pregled Webhook-a

Webhookovi su moćan alat za automatizaciju procesa i integraciju sistema. Omogućavaju vam da primate obaveštenja u realnom vremenu o događajima ili promenama u vašem nalogu ili podešavanjima domena. Konfigurisanjem webhookova možete pokrenuti radnje u eksternim sistemima, ažurirati baze podataka ili slati obaveštenja na osnovu određenih događaja.

Dynadot API podržava webhook obaveštenja za razne događaje, kao što su registracija domena, transfer, obnova i istek, tako da možete preduzeti odgovarajuće radnje kao odgovor.

Da biste koristili webhook-ove, potrebno je da navedete URL krajnju tačku na koju će se slati obaveštenja. Svoj webhook URL, ključ i tajnu možete podesiti u podešavanjima naloga. Kada se dogodi neki događaj, Dynadot će poslati POST zahtev na navedeni URL sa relevantnim podacima.

Zaglavlje Webhook zahteva

Zaglavlje Webhook zahteva sadrži metapodatke o zahtevu. Ovi metapodaci pružaju neophodan kontekst serveru da pravilno obradi zahtev. Najčešće korišćena zaglavlja uključuju:

Content-Type

Određuje format podataka koji se šalju u telu zahteva. Server koristi ove informacije da pravilno parsira zahtev. Trenutno je jedina prihvatljiva vrednost: application/json

Primer :
Content-Type: application/json

Autorizacija

Svi Webhook zahtevi će sadržati Webhook ključ za autentifikaciju. Svoj Webhook ključ možete pronaći na kontrolnoj tabli svog naloga.

Možete da upravljate svojim WEBHOOK_KEY na stranici sa podešavanjima API-ja
Primer zaglavlja za autentifikaciju :
Authorization: Bearer WEBHOOK_KEY

X-Signature

Zaglavlje X-Signature je obavezan bezbednosni mehanizam za transakcione zahteve, uključujući one koji preuzimaju osetljive informacije ili ažuriraju podatke. Ono obezbeđuje autentičnost, integritet i neporecivost Webhook zahteva tako što zahteva da klijenti potpišu sadržaj zahteva koristeći HMAC-SHA256.

Da biste generisali potpis, potrebne su vam sledeće vrednosti

1. WEBHOOK ključ: Vaš jedinstveni WEBHOOK ključ.

2. Puna putanja i upit: Puna putanja WEBHOOK endpointa zajedno sa parametrima upita.

3. X-Request-Id: ID zahteva. Ako nije dostupan, možete uneti prazan string.

4. Telo zahteva: Telo zahteva. Ako je prazno ili null, možete uneti prazan string.

String koji treba potpisati je kombinacija gore navedenih vrednosti, spojenih u sledećem redosledu:

webhookKey + "\n" + fullPathAndQuery + "\n" + (xRequestId or empty String) + "\n" + (requestBody or empty String)
Primer
webhookKey = "your_webhook_key"
fullPathAndQuery = "/v2/some/endpoint?param=value"
xRequestId = "unique-request-id"
requestBody = "{\"key\":\"value\"}"

stringToSign = "your_webhook_key\n/v2/some/endpoint?param=value\nunique-request-id\n{\"key\":\"value\"}"
Generišite HMAC-SHA256 potpis.

Nakon konstruisanja stringToSign, izračunajte potpis koristeći HMAC-SHA256 sa vašim tajna kao ključem, zatim Base64 kodiranje rezultat.

Potpis se generiše pomoću sledećih koraka:

1. Koristite HMAC-SHA256 algoritam.

2. Koristite stringToSign (UTF-8) kao ulaznu poruku.

3. Koristite svoju tajnu (UTF-8) kao ključ.

4. Kodirajte HMAC izlaz u Base64 (standardni Base64)

Primenite generisani Potpis kao vrednost X-Signature u zaglavlju zahteva

Example :
X-Signature: {HMAC-SHA256 Signature}
Example Code :
import base64
import hashlib
import hmac
import uuid

def create_signature(webhook_key, webhook_secret, full_path_and_query, x_request_id, request_body=""):
    string_to_sign = (
        webhook_key + "\n" +
        full_path_and_query + "\n" +
        (x_request_id or "") + "\n" +
        (request_body or "")
    )

    digest = hmac.new(
        webhook_secret.encode("utf-8"),
        string_to_sign.encode("utf-8"),
        hashlib.sha256
    ).digest()

    return base64.b64encode(digest).decode("utf-8")

webhook_key = "your_webhook_key"
webhook_secret = "your_secret"
full_path_and_query = "/v2/some/webhook/path"
x_request_id = str(uuid.uuid4())
request_body = ""

x_signature = create_signature(
    webhook_key,
    webhook_secret,
    full_path_and_query,
    x_request_id,
    request_body
)

print("X-Request-ID:", x_request_id)
print("X-Signature:", x_signature)

Format webhook zahteva

Format sadržaja

Telo webhook zahteva sadrži informacije o događaju koji je pokrenuo obaveštenje. Format podataka u telu određuje Content-Type zaglavlje, koje je obično application/json.

Telo zahteva sadrži sledeće parametre:

Primer:

JSON/XML

Parametri

Telo zahteva sadrži sledeće parametre:

ParametarOpis
DogađajTip događaja koji je pokrenuo obaveštenje.
ID događajaID događaja koji je pokrenuo obaveštenje.
vremenska oznakaVremenska oznaka kada se događaj dogodio.
podaciPodaci povezani sa događajem.

Format Webhook odgovora

Format sadržaja

Odgovor na webhook zahtev biće poslat u JSON formatu, u zavisnosti od Content-Type zaglavlja navedenog u zahtevu.

Telo odgovora sadrži informacije o statusu zahteva, kao što su da li je uspešno obrađen ili je došlo do greške.

Odgovor generalno sadrži 1 deo: Status

Primer:

JSON/XML

Ograničavanje brzine

Zahtevi treba da se šalju preko https (sigurnog soketa) radi bezbednosti. U jednom trenutku može da se obradi samo 1 zahtev, zato sačekajte da se trenutni zahtev završi pre nego što pošaljete sledeći.

Dobićete različit broj niti u zavisnosti od cenovnog nivoa vašeg naloga:

Nivo ceneBroj nitiOgraničenje brzine
Redovno1 nit60/min (1/sek)
Bulk5 niti600/min (10/sek)
Super Bulk35 niti6000/min (100/sek)

Napomena: place_auction_bid & get_auction_bid su trenutno izuzeti od gore navedenog ograničenja brzine.

Primer :

Za komandu za procenu domena, dobićete različite dozvoljene brojeve zahteva u zavisnosti od nivoa cene vašeg naloga:

Nivo ceneOgraničenje brzine
Redovno50/dan
Bulk100/dan
Super Bulk300/dan
Primer :

Sandbox

Dynadot API Sandbox okruženje vam omogućava da bezbedno testirate svoje API integracije bez uticaja na vaš aktivni nalog ili prava sredstva.

Kako pristupiti Sandbox-u

1. Prijavite se na svoj Dynadot nalog i idite na stranicu sa podešavanjima API-ja:

2. https://www.dynadot.com/account/domain/setting/api.html

3. Generišite svoj API Sandbox ključ i API Sandbox tajni ključ.

4. Nakon generisanja, sačekajte neko vreme da sistem aktivira vaše sandbox ključeve i kreira vaš Sandbox nalog.

5. Vaš Sandbox nalog biće prethodno finansiran sa stanjem od 10,000 u svim podržanim valutama za potrebe testiranja.

Korišćenje Sandbox API-ja

API naredbe u Sandbox okruženju su funkcionalno iste kao u produkcijskom okruženju.

Jedina razlika je osnovni URL:

URL produkcijskog API-ja: https://api.dynadot.com

URL Sandbox API-ja: https://api-sandbox.dynadot.com

Važne napomene

Neke API komande mogu biti nedostupne u Sandbox okruženju. Pogledajte dokumentaciju za konkretnu komandu da proverite "Podrška za API Sandbox" oznaku.

Sandbox je prvenstveno namenjen za testiranje. Određene komande mogu se razlikovati od produkcije, a Sandbox ne može u potpunosti da simulira sve moguće složene scenarije koji se nalazi u produkcionom okruženju.

Pregled dnevnika izmena

Dnevnik izmena je detaljan zapis o izmenama, poboljšanjima, ispravkama grešaka i novim funkcijama uvedenim u svakoj verziji API-ja. Pruža transparentnost korisnicima i programerima dokumentovanjem uticaja svakog ažuriranja. Sastoji se od dva ključna dela:

API verzija

Ovaj deo ističe sistem verzionisanja API-ja, koji pomaže programerima da prate evoluciju funkcija i osiguraju kompatibilnost. Svaka verzija API-ja je identifikovana jedinstvenim brojem verzije (npr. v1.0.1, v2.2.3) i predstavlja značajnu prekretnicu ili izdanje. Verzionisanje omogućava korisnicima da održe integracije uz minimalne smetnje tako što će se prijaviti za ažuriranja kada budu spremni.

Istorija izmena

Istorija dnevnika promena pruža detaljne informacije o ažuriranjima, ispravkama grešaka, zastarevanjima i poboljšanjima uvedenim u svakoj verziji. Ona navodi konkretne promene na endpointima, parametrima, mehanizmima autentifikacije ili formatima odgovora. Ovaj odeljak obezbeđuje da programeri imaju punu transparentnost o tome šta je promenjeno i mogu da prilagode svoje implementacije u skladu sa tim. Održavanjem jasnog i detaljnog dnevnika promena, cilj nam je da programerima pružimo alate i informacije potrebne za efikasno i pouzdano upravljanje integracijama.

API verzija

Naš API je trenutno u verziji v2.0.0

Kodovi verzija se koriste za sistematsko identifikovanje i upravljanje ažuriranjima API-ja. Oni prate format semantičkog verzionisanja (SemVer):

<Major><Minor><Patch>

Svaka komponenta koda verzije služi određenoj svrsi i pomaže programerima da efikasno saopšte obim i vrstu promena.

Glavna verzija

Definicija: Predstavlja značajne promene koje mogu narušiti kompatibilnost unazad.

Format:

x.<Minor>.x
Primeri: v1.0.0 -> v2.0.0: Potpuno redizajniranje API-ja ili promene šeme koje nisu kompatibilne.

Minorna verzija

Definicija: Označava dodavanje funkcija kompatibilnih unazad.

Format:

x.<Minor>.x
Primeri: v1.0.0 -> v1.1.0: Dodavanje novih endpointa ili metoda uz očuvanje kompatibilnosti unazad.

Verzija zakrpe

Definicija: Odnosi se na unazad kompatibilne ispravke grešaka ili manja poboljšanja.

Format:

x.x.<Patch>
Primeri: v1.0.0 -> v1.1.0: Ispravljanje manje greške u API endpointu.

Dnevnik izmena API-ja

Dnevnik promena je detaljan zapis promena, poboljšanja, ispravki grešaka i novih funkcija uvedenih u svakoj verziji softvera ili API-ja. Pruža transparentnost korisnicima i programerima dokumentovanjem uticaja svakog ažuriranja.

Tipičan unos u dnevniku izmena uključuje:

Opis: Kratko objašnjenje onoga što je promenjeno.

Pogođene komponente: Specifični moduli, endpointi ili funkcije na koje utiče promena.

Primer: Dodata podrška za ovu novu API komandu <Registracija domena>

Istorija izmena

Pratite svaku izmenu Dynadot API-ja.

9. oktobar 2025
v2.0.0Nove funkcije & ključne promene Sandbox okruženje je sada dostupno Sandbox okruženje je zvanično pokrenuto i dostupno za bezbedno testiranje i validaciju integracija. Obavezno X-Signature zaglavlje za osetljive operacije Radi poboljšanja bezbednosti, X-Signature zaglavlje je sada obavezno za sve osetljive API komande. (Opciono) Mašinski čitljiva dokumentacija API-ja Sada podržavamo strukturisanu, mašinski čitljivu API dokumentaciju za lakšu integraciju sa automatizovanim alatima. Pristup pretrazi ograničen Pristup određenim endpointima za pretragu je ograničen zbog performansi i kontrole podataka. Optimizovano stavljanje IP adresa na belu listu Reseller nalog više ne zahteva unos najmanje 1 IP adrese za korišćenje API-ja (samo RESTful API) Poboljšanja API dokumentacije Ažuriran birač verzija na odredišnoj stranici dokumentacije radi lakše navigacije Ujednačene konvencije pisanja velikih i malih slova u imenima parametara Proširena dokumentacija i smernice za korišćenje za bulk_search endpoint Dodata funkcija za skrivanje/prikazivanje bočne navigacije
Uvedeni obavezni parametri paginacije radi poboljšanja efikasnosti i konzistentnosti odgovora. page (ceo broj, obavezno) – Određuje indeks trenutne stranice, počevši od 1. page_size (ceo broj, obavezno) – Definiše broj stavki vraćenih po stranici.get_listings