# 13 Domains API: How to create a domain

*This is a series of articles dedicated to demonstrating how to get acquainted with Openprovider Domains API methods.*

*This is a first article in a series in which we are going to cover **basic domain management operations**. To get more information about our API in general, please use our [documentation portal](https://docs.openprovider.com) as your reference.*

You must have an active Openprovider account for this command to complete successfully. Please keep in mind that you will be automatically charged the registration fee upon successful registration.

<div id="bkmrk-use-endpoint-path-be">![Entering Geo Fence icon](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-wf8xicsl.png)Use endpoint path below. Base URL is determined by both the target environment and API version.</div><div id="bkmrk-post-%7Bbase_url%7D%2Fdoma">```
<span><strong>POST</strong> <a href="http://docs.openprovider.com/#operation/"><strong>{base_url}</strong></a>/domains/</span>
```

</div><div id="bkmrk-request-values-name-"><details><summary>REQUEST VALUES</summary>

<table><tbody><tr><td>**<span>Name</span>**</td><td>**<span>Type</span>**</td><td>**<span>Description</span>**</td></tr><tr><td>name</td><td>string</td><td>**Required.**</td></tr><tr><td>period</td><td>integer</td><td>**Required.**</td></tr><tr><td>auth\_code</td><td>varchar</td><td>Optional.</td></tr><tr><td>owner\_handle</td><td>varchar</td><td>**Required.**</td></tr><tr><td>admin\_handle</td><td>varchar</td><td>**Required.**</td></tr><tr><td>tech\_handle</td><td>varchar</td><td>**Required.**</td></tr><tr><td>billing\_handle</td><td>varchar</td><td>Optional.</td></tr><tr><td>reseller\_handle</td><td>varchar</td><td>Optional.</td></tr><tr><td>ns\_group</td><td>string</td><td>**Required** only if name\_servers field is empty</td></tr><tr><td><span>ns\_template\_name</span></td><td>string</td><td>Optional. N<span>ame of the template to use to automatically create DNS zone for the domain; only applicable if nsGroup is </span>*dns-openprovider*</td></tr><tr><td>name\_servers</td><td>Array of objects (Array containing name server information)</td><td>**Required** only if nsGroup field is empty</td></tr><tr><td>autorenew</td><td>custom</td><td>*on | off | default* </td></tr><tr><td><span>is\_dnssec\_enabled</span></td><td>boolean</td><td>0 (default) or 1 - Only accepted when nameservers of Openprovider are used</td></tr><tr><td>dnssec\_keys</td><td>varchar</td><td>when using your own nameservers</td></tr><tr><td>use\_domicile</td><td>boolean</td><td>0 or 1</td></tr><tr><td><span>accept\_premium\_fee</span></td><td>int or double</td><td>Required in case when domain is premium, value is the price returned in the response for createDomainRequest without acceptPremiumFee</td></tr><tr><td>is\_private\_whois\_enabled </td><td>boolean</td><td>default value is 0</td></tr><tr><td><span>promo\_code</span></td><td>string</td></tr><tr><td>comments</td><td>string</td></tr><tr><td>additional\_data </td><td>custom</td><td><span>mandatory for some TLDs</span></td></tr><tr><td>application\_mode</td><td>custom</td><td><span>required for new gTLDs</span></td></tr></tbody></table>

</details>***NB** The owner, admin and tech handles can be retrieved via the [customers endpoint](https://openprovider.help/books/api-plugins/page/7-customers-api-how-to-get-an-existing-handle) and will be the registered contacts for this domain.*

<div id="bkmrk-request-examplecurl-"><div><details><summary>REQUEST EXAMPLE</summary>

```
curl -X POST \<br></br> 'http://api.openprovider.eu/v1beta/domains' \<br></br> -H 'Accept: */*' \<br></br> -H 'Authorization: ,Bearer 2f4c1c3a9******15d22b378a64' \<br></br> -H 'Connection: keep-alive' \<br></br> -H 'Content-Type: application/json' \<br></br> -d '{<br></br> "owner_handle": "XX000001-XX",<br></br> "admin_handle": "XX000001-XX",<br></br> "tech_handle": "XX000001-XX",<br></br> "billing_handle": "XX000001-XX",<br></br> "domain": {<br></br> "extension": "com",<br></br> "name": "example"<br></br> },<br></br> "period": 1,<br></br> "ns_group": "dns-openprovider"<br></br>}
```

</details></div><details><summary>RESPONSE EXAMPLE</summary>

```
{<br></br> "code": 0,<br></br> "data": {<br></br> "activation_date": "2019-04-29 17:15:19",<br></br> "auth_code": "C8$#wgG#25tQ",<br></br> "expiration_date": "2020-04-29 17:15:19",<br></br> "id": 10592139,<br></br> "renewal_date": "2020-04-29 17:15:19",<br></br> "status": "ACT"<br></br> },<br></br> "desc": ""<br></br>}
```

</details><div id="bkmrk-response-values-name"><details><summary>RESPONSE VALUES</summary>

<table><tbody><tr><td>**<span>Name</span>**</td><td>**<span>Type</span>**</td><td>**<span>Description</span>**</td></tr><tr><td>status</td><td>ACT - active or REQ - requested</td></tr><tr><td>auth\_code</td><td>only in case if TLD supports it</td></tr><tr><td>activation\_date</td><td>available only in case of a succeeded realtime domain registration</td></tr></tbody></table>

</details></div></div></div>