Domains
Domains are central and important to all your account resources on ola.cv. On this page, we’ll dive into the different domain endpoints you can use to manage domains programmatically. We'll look at how to query, create (buy/register), and update domains.
The domain model
The domain model contains all the information about a domain on your account.
Properties
- Name
id- Type
- string
- Description
Unique identifier for the domain.
- Name
domain- Type
- string
- Description
The domain name.
- Name
auto_renew- Type
- boolean
- Description
Tells whether the domain may be auto-renewed at expiration, provided you have a funded wallet or card on file.
- Name
registered_at- Type
- timestamp
- Description
Timestamp of when the domain was registered.
- Name
expires_at- Type
- timestamp
- Description
Timestamp of when the domain will expire.
- Name
created_at- Type
- timestamp
- Description
Timestamp of when the domain was created.
- Name
updated_at- Type
- timestamp
- Description
Timestamp of when the domain was last updated.
Check for domains
This endpoint allows you to check for the availability and prices for multiple domains at the same time.
Optional query attributes
- Name
fees- Type
- string
- Description
Specify the type of fees you want included in the response. Values can be one of
registrationorall. If not specified we use a default value of registration.
Required attributes
- Name
domains- Type
- array
- Description
An array of
.cvdomain names to check.
Request
curl https://ola.cv/api/v1/domains/check \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"domains": ["somedomain.cv", "anotherdomain.cv"]
}'
Response
{
"data": {
"somedomain.cv": {
"domain": "somedomain.cv",
"available": false
},
"anotherdomain.cv": {
"domain": "anotherdomain.cv",
"available": true,
"premium": false,
"registration_fee": 10,
"currency": "USD"
}
},
"message": "All domain check(s) completed successfully."
}
Response with all fees
{
"data": {
"somedomain.cv": {
"domain": "somedomain.cv",
"available": false,
"renewal_fee": 10,
"transfer_fee": 10,
"redemption_fee": 10,
"currency": "USD"
},
"anotherdomain.cv": {
"domain": "anotherdomain.cv",
"available": true,
"premium": false,
"registration_fee": 10,
"renewal_fee": 10,
"transfer_fee": 10,
"redemption_fee": 10,
"currency": "USD"
}
},
"message": "All domain check(s) completed successfully."
}
List all domains
This endpoint allows you to retrieve a paginated list of all your domains. By default, a maximum of 20 domains are shown per page.
Optional attributes
- Name
page- Type
- integer
- Description
The page to retrieve domain records for.
- Name
per_page- Type
- integer
- Description
The number of records to retrieve per page.
Request
curl https://ola.cv/api/v1/domains \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json'
Response
{
"data": [
{
"id": "437610729587142658",
"domain": "somedomain.cv",
"auto_renew": true,
"registered_at": "2024-07-25T16:13:13.000000Z",
"expires_at": "2025-07-25T16:13:13.000000Z",
"created_at": "2024-07-25T16:13:14.000000Z",
"updated_at": "2024-07-25T16:13:14.000000Z"
},
{
"id": "437610729587142682",
// ...
}
],
"meta": {
"current_page": 1,
"first_page_url": "https://ola.cv/api/v1/domains?page=1",
"next_page_url": null,
"path": "https://ola.cv/api/v1/domains",
"per_page": 20,
"prev_page_url": null,
},
"message": "Domains retrieved successfully."
}
Register a domain
This endpoint allows you to register or buy a new domain, preferably after checking for its availability.
Your account must be active, and your account wallet funded or have a funded card on file for you to be able to complete this request successfully. You will be automatically charged the registration fee upon a successful request, so please proceed carefully. Complimentary and bonus wallet balances cannot be used for the registration of premium domain names.
Required attributes
- Name
name- Type
- string
- Description
The
.cvdomain name to register.
- Name
registrant- Type
- string
- Description
The ID of an existing contact as registrant for the domain.
Optional attributes
- Name
admin- Type
- string
- Description
[Optional] The ID of an existing contact as administrative contact for the domain.
- Name
tech- Type
- string
- Description
[Optional] The ID of an existing contact as technical contact for the domain.
- Name
billing- Type
- string
- Description
[Optional] The ID of an existing contact as billing contact for the domain.
- Name
period- Type
- integer
- Description
[Optional] The number of years you wish to register the domain for. The default is 1 up to a maximum of 5 years.
- Name
nameservers- Type
- array
- Description
[Optional] An array of nameservers e.g
["brad.ns.cloudflare.com", "coco.ns.cloudflare.com"], or authoritative DNS servers, to attach to the domain name. Ensure each nameserver is a valid nameserver obtained from a DNS provider, or leave out the nameservers parameter from request altogether. It is advisable to leave out nameservers at registration, you can always set own values after the domain is registered.
Request
curl https://ola.cv/api/v1/domains \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"name": "somedomain.cv",
"registrant": "359384716146888704"
}'
Response
{
"data": {
"id": "437610729587142658",
"domain": "somedomain.cv",
"auto_renew": true,
"registered_at": "2024-07-25T16:13:13.000000Z",
"expires_at": "2025-07-25T16:13:13.000000Z",
"created_at": "2024-07-25T16:13:14.000000Z",
"updated_at": "2024-07-25T16:13:14.000000Z"
},
"message": "Domain registered successfully."
}
Retrieve a domain
This endpoint allows you to retrieve a domain by providing the domain id. Refer to the list at the top of this page to see which properties are included with domain objects.
Request
curl https://ola.cv/api/v1/domains/437610729587142658 \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json'
Response
{
"data": {
"id": "437610729587142658",
"domain": "somedomain.cv",
"auto_renew": true,
"registered_at": "2024-07-25T16:13:13.000000Z",
"expires_at": "2025-07-25T16:13:13.000000Z",
"created_at": "2024-07-25T16:13:14.000000Z",
"updated_at": "2024-07-25T16:13:14.000000Z"
},
"message": "Domain retrieved successfully."
}
Update auto-renew
This endpoint allows you to perform an update on the auto-renew setting for a domain. You can control whether your domain should be auto renewed at expiration, provided you have a funded wallet or card on file.
Required attributes
- Name
auto_renew- Type
- boolean
- Description
Tells whether the domain may be auto-renewed at expiration, provided you have a funded wallet or card on file.
Request
curl https://ola.cv/api/v1/domains/356127318118129664/auto-renew \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"auto_renew": false
}'
Response
{
"data": {
"id": "356127318118129664",
"domain": "somedomain.cv",
"auto_renew": false,
"registered_at": "2025-09-09T17:22:48.000000Z",
"expires_at": "2027-01-05T00:00:00.000000Z",
"created_at": "2025-09-09T17:22:49.000000Z",
"updated_at": "2026-04-28T16:58:36.000000Z"
},
"message": "Domain updated successfully."
}
Update nameservers
This endpoint allows you to update or set new nameservers for a domain.
Required attributes
- Name
nameservers- Type
- array
- Description
An array of nameservers e.g
["brad.ns.cloudflare.com", "coco.ns.cloudflare.com"], or authoritative DNS servers, to attach to the domain name. Ensure each nameserver is a valid nameserver obtained from a DNS provider.
Request
curl https://ola.cv/api/v1/domains/356127318118129664/nameservers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"nameservers": ["brad.ns.cloudflare.com", "coco.ns.cloudflare.com"]
}'
Response
{
"data": {
"id": "356127318118129664",
"domain": "somedomain.cv",
"auto_renew": false,
"registered_at": "2025-09-09T17:22:48.000000Z",
"expires_at": "2027-01-05T00:00:00.000000Z",
"created_at": "2025-09-09T17:22:49.000000Z",
"updated_at": "2026-04-28T16:58:36.000000Z"
},
"message": "Domain updated successfully."
}
Reset nameservers
This endpoint allows you to reset the nameservers for a domain to ola.cv's defaults.
Request
curl https://ola.cv/api/v1/domains/356127318118129664/reset-nameservers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-X POST
Response
{
"data": {
"id": "356127318118129664",
"domain": "somedomain.cv",
"auto_renew": false,
"registered_at": "2025-09-09T17:22:48.000000Z",
"expires_at": "2027-01-05T00:00:00.000000Z",
"created_at": "2025-09-09T17:22:49.000000Z",
"updated_at": "2026-04-28T16:58:36.000000Z"
},
"message": "Domain updated successfully."
}
Renew a domain
This endpoint allows you to renew a domain and extend its expiration for a specified number of years.
Your account must be active, and your account wallet funded or have a funded card on file for you to be able to complete this request successfully. You will be automatically charged the renewal fee upon a successful request, so please proceed carefully. Complimentary and bonus wallet balances cannot be used for the renewal of premium domain names.
Required attributes
- Name
period- Type
- integer
- Description
The number of years you wish to extend the expiration of the domain by.
Request
curl https://ola.cv/api/v1/domains/356127318118129664/renew \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"period": 2
}'
Response
{
"data": {
"id": "356127318118129664",
"domain": "somedomain.cv",
"auto_renew": false,
"registered_at": "2025-09-09T17:22:48.000000Z",
"expires_at": "2027-01-05T00:00:00.000000Z",
"created_at": "2025-09-09T17:22:49.000000Z",
"updated_at": "2026-04-28T16:58:36.000000Z"
},
"message": "Domain renewed successfully."
}
List all transfers
This endpoint allows you to retrieve a paginated list of all your domain transfers. By default, a maximum of 20 transfers are shown per page.
Optional attributes
- Name
page- Type
- integer
- Description
The page to retrieve domain transfer records for.
- Name
per_page- Type
- integer
- Description
The number of records to retrieve per page.
Request
curl https://ola.cv/api/v1/transfers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json'
Response
{
"data": [
{
"id": "383589270588084224",
"domain_id": "356127255044186112",
"domain_name": "thisdomain.cv",
"initiator_email": null,
"initiator_name": null,
"recipient_email": "smith@example.com",
"recipient_name": "John Smith",
"type": "p2p",
"status": "processed",
"created_at": "2025-11-24T12:06:48.000000Z",
"updated_at": "2025-11-24T12:06:55.000000Z",
"requested_at": null,
"transferred_at": "2025-11-24T12:06:55.000000Z"
},
{
"id": "356808610334081024",
// ..
}
],
"meta": {
"current_page": 1,
"first_page_url": "https://ola.cv/api/v1/transfers",
"from": 1,
"next_page_url": null,
"path": "https://ola.cv/api/v1/transfers",
"per_page": 20,
"prev_page_url": null,
"to": 15
},
"message": "Domain transfers retrieved successfully."
}
Create a transfer
This endpoint allows you to initiate a transfer of your ola.cv domain to another ola.cv account, or transfer a .cv domain from another registrar platform to your ola.cv account. The former is a P2P transfer, while the latter is regarded as an inbound transfer.
Required attributes
- Name
domain_name- Type
- string
- Description
The name of the domain (in your account) you wish to transfer.
- Name
recipient_email- Type
- string
- Description
The email of the recipient of the transfer.
- Name
recipient_name- Type
- string
- Description
The name of the recipient of the transfer.
Request
curl https://ola.cv/api/v1/transfers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"domain_name": "thisdomain.cv",
"recipient_email": "recipient@example.com",
"recipient_name": "Jane Doe"
}'
Response
{
"data": {
"id": "442307690264670208",
"domain_id": "356127255044186112",
"domain_name": "thisdomain.cv",
"initiator_email": null,
"initiator_name": null,
"recipient_email": "recipient@example.com",
"recipient_name": "Jane Doe",
"type": "p2p",
"status": "processing",
"created_at": "2026-05-05T12:52:51.000000Z",
"updated_at": "2026-05-05T12:52:51.000000Z",
"requested_at": "2026-05-05T12:52:51.000000Z",
"transferred_at": null
},
"message": "Domain transfer initiated successfully."
}
Retrieve a transfer
This endpoint allows you to retrieve the details of a domain transfer on your ola.cv account.
Request
curl https://ola.cv/api/v1/transfers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json'
Response
{
"data": {
"id": "442307690264670208",
"domain_id": "356127255044186112",
"domain_name": "thisdomain.cv",
"initiator_email": null,
"initiator_name": null,
"recipient_email": "recipient@example.com",
"recipient_name": "Jane Doe",
"type": "p2p",
"status": "processing",
"created_at": "2026-05-05T12:52:51.000000Z",
"updated_at": "2026-05-05T12:52:51.000000Z",
"requested_at": "2026-05-05T12:52:51.000000Z",
"transferred_at": null
},
"message": "Domain transfer retrieved successfully."
}
Cancel a transfer
This endpoint allows you to cancel an open transfer request on ola.cv. Note: You cannot cancel a fulfilled or processed transfer request.
Request
curl -X DELETE https://ola.cv/api/v1/transfers/442751575715987456 \
-H "Authorization: Bearer {token}"
Response
{
"data": {
"id": "442751575715987456"
},
"message": "Domain transfer cancelled successfully."
}
Retrieve a domain zone
This endpoint allows you to retrieve a zone by providing the domain ID the zone belongs to. Refer to zones listing to see which properties are included with zone objects.
Request
curl https://ola.cv/api/v1/domains/437610729587142658/zone \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json'
Response
{
"data": {
"id": "444576043220111360",
"name": "anotherdomain.cv",
"status": "active",
"name_servers": [
"brad.ns.cloudflare.com",
"coco.ns.cloudflare.com"
],
"activated_at": "2024-08-15T16:53:30.000000Z",
"created_at": "2024-08-14T14:08:22.000000Z",
"updated_at": "2024-08-15T16:53:30.000000Z"
},
"message": "DNS zne retrieved successfully."
}