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.


POST/api/v1/domains/check

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 registration or all. If not specified we use a default value of registration.

Required attributes

  • Name
    domains
    Type
    array
    Description

    An array of .cv domain names to check.

Request

POST
/api/v1/domains/check
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."
}

GET/api/v1/domains

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

GET
/api/v1/domains
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."
}

POST/api/v1/domains

Register a domain

This endpoint allows you to register or buy a new domain, preferably after checking for its availability.

Required attributes

  • Name
    name
    Type
    string
    Description

    The .cv domain 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

POST
/api/v1/domains
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."
}

GET/api/v1/domains/:id

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

GET
/api/v1/domains/437610729587142658
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."
}

POST/api/v1/domains/:id/auto-renew

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

POST
/api/v1/domains/3561273181../auto-renew
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."
}

POST/api/v1/domains/:id/nameservers

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

POST
/api/v1/domains/356127318../nameservers
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."
}

POST/api/v1/domains/:id/reset-nameservers

Reset nameservers

This endpoint allows you to reset the nameservers for a domain to ola.cv's defaults.

Request

POST
/api/v1/domains/35612731../reset-nameservers
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."
}

POST/api/v1/domains/:id/renew

Renew a domain

This endpoint allows you to renew a domain and extend its expiration for a specified number of years.

Required attributes

  • Name
    period
    Type
    integer
    Description

    The number of years you wish to extend the expiration of the domain by.

Request

POST
/api/v1/domains/356127318118129664/renew
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."
}

GET/api/v1/transfers

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

GET
/api/v1/transfers
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."
}

POST/api/v1/transfers

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

POST
/api/v1/transfers
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."
}

GET/api/v1/transfers/:id

Retrieve a transfer

This endpoint allows you to retrieve the details of a domain transfer on your ola.cv account.

Request

GET
/api/v1/transfers/442307690264670208
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."
}

DELETE/api/v1/transfers/:id

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

DELETE
/api/v1/transfers/442751575715987456
curl -X DELETE https://ola.cv/api/v1/transfers/442751575715987456 \
  -H "Authorization: Bearer {token}"

Response

{
  "data": {
    "id": "442751575715987456"
  },
  "message": "Domain transfer cancelled successfully."
}

GET/api/v1/domains/:id/zone

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

GET
/api/v1/domains/437610729587142658/zone
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."
}

Was this page helpful?