canonical: https://jentic.com/apis/olacv/olacv

# Ola.cv Domain Management API

Jentic publishes the only available OpenAPI specification for Ola.cv Domain Management API, keeping it validated and agent-ready. The Ola.cv Domain Management API is a RESTful interface for registering and operating .cv (Cape Verde) domain names, including contact handle creation, domain availability checks, registration, DNS zone listing, and per-record DNS management. It exposes 14 endpoints under `/api/v1` covering contacts, domains, zones, and individual DNS records, with a dedicated test-domain deletion endpoint for sandbox cleanup. Authentication uses bearer tokens issued by Ola.cv.

## For AI agents

Register .cv (Cape Verde) domains, manage WHOIS contacts, and edit DNS zones and records via REST. Useful for any agent automating Cape Verde-specific domain provisioning.

## Scope

Does not handle non-.cv TLDs, SSL certificate issuance, or web hosting - use for .cv domain registration and DNS only.

## Capabilities

- Check whether a .cv domain name is available before purchase
- Register a new .cv domain against an existing contact handle
- Create and retrieve WHOIS contacts used for domain registration
- List the DNS zones owned on the Ola.cv account
- Add A, AAAA, MX, TXT, and CNAME records to a DNS zone
- Delete sandbox test domains created during integration

## Use cases

### Automated .cv Domain Registration

When customers buy a .cv domain through a reseller storefront, the workflow checks availability via POST `/api/v1/domains/check`, creates the WHOIS contact via POST `/api/v1/contacts`, then registers the domain via POST `/api/v1/domains.` This removes the need for a manual back-office step and confirms the domain in seconds rather than the multi-day handover typical of country-code TLD resellers.

Example prompt: Check availability of 'mybrand.cv' via POST `/api/v1/domains/check`, create a contact, then register the domain with the contact ID returned.

### DNS Record Provisioning for Hosting Platforms

A hosting platform that wants to point customer domains at its load balancers uses GET `/api/v1/zones` to find the customer's zone, POST `/api/v1/zones/{id}/records` to add A and CNAME records, and POST `/api/v1/zones/{zoneId}/records/{recordId}` to update them when servers move. Each operation works on a single record so changes can be made surgically without rewriting the whole zone.

Example prompt: List records in zone 12345 via GET `/api/v1/zones/12345/records` and POST a new A record pointing 'app.example.cv' at 203.0.113.10.

### Sandbox Cleanup After Integration Tests

Integration test suites that register temporary .cv domains can clean them up by calling DELETE `/api/v1/domains/{id}/test`, ensuring sandbox accounts do not accumulate junk records that affect later runs. This endpoint is restricted to test domains, protecting against accidental deletion of production registrations.

Example prompt: After running registration tests, call DELETE `/api/v1/domains/{id}/test` for every domain ID created during the run.

### AI Agent Domain Operations

An AI agent connected through Jentic can register a .cv domain end to end - search availability, create the contact, register the domain, and add the initial DNS records - from a single user instruction. Jentic stores the bearer token encrypted, so the agent never has direct access to the raw credential while still calling the operations.

Example prompt: Search Jentic for 'register a .cv domain', load the registration and DNS operations, and execute a full provisioning flow for 'company.cv' with two A records.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/v1/domains/check` | Check .cv domain availability |
| POST | `/api/v1/domains` | Register a .cv domain |
| POST | `/api/v1/contacts` | Create a WHOIS contact |
| GET | `/api/v1/zones/{id}/records` | List DNS records in a zone |
| POST | `/api/v1/zones/{id}/records` | Create a DNS record |
| POST | `/api/v1/zones/{zoneId}/records/{recordId}` | Update a DNS record |

## Key resources

- **Contacts** — Create WHOIS contact handles required for domain registration.
- **Domains** — Check availability, register, list, and retrieve .cv domains; delete sandbox test domains.
- **DNS Zones** — List the zones managed under the account and retrieve zone metadata.
- **DNS Records** — List, create, retrieve, and update individual records within a zone.

## Why Jentic

- **Setup:** Wiring the Ola.cv Domain Management API by hand means setting up its bearer-token Authorization header, targeting the developer.ola.cv host, and navigating 14 endpoints across domains, contacts, zones, and records yourself. Through Jentic you install once, import Ola.cv from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Ola.cv puts the zone and record ids in the URL path (for example `/api/v1/zones/{zoneId}/records/{recordId}`), so a rule can pin your agent to one zone, and for collection-level calls you limit it to the operations it needs, such as checking domain availability or reading records. You choose the operations it may call, so registering a domain is not included unless you add it.
- **Credential handling:** Your Ola.cv bearer token is stored once, encrypted, by your own Jentic One instance and used to build the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'register a .cv domain' or 'add a DNS record', and Jentic returns the matching Ola.cv operation with its full input schema so the agent calls the right endpoint without scraping the docs.

## Related APIs

- **GoDaddy Domains API** — General-purpose domain registration covering hundreds of TLDs.
- **Cloudflare API** — Operate Cloudflare DNS, CDN, and security in front of registered .cv domains.
- **Vercel API** — Attach a registered .cv domain to a Vercel-hosted site.

## FAQ

### Why is there no official OpenAPI spec for Ola.cv Domain Management API?

Ola.cv does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Ola.cv Domain Management API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Ola.cv Domain Management API use?

Requests use bearer tokens (HTTP Authorization: Bearer ...) issued from the Ola.cv developer console. Jentic stores the bearer token in its encrypted vault and injects it on each call, so the agent only references a credential handle.

### Can I check .cv domain availability before registering?

Yes. POST `/api/v1/domains/check` returns whether a candidate domain is available. The recommended pattern is to call this endpoint first, then create or reuse a contact, then call POST `/api/v1/domains` to register.

### What are the rate limits for the Ola.cv Domain Management API?

The OpenAPI spec does not include rate limit definitions. Treat domain availability checks as cheap and registrations as expensive - batch availability checks before invoking registration to avoid wasted contact creation.

### How do I add an MX record to a zone through Jentic?

Search Jentic for 'add dns record to ola.cv zone', load POST `/api/v1/zones/{id}/records`, and pass the record type, name, and target. Jentic returns the schema so the agent supplies only the values.

### Does the Ola.cv API include WHOIS lookups for arbitrary domains?

No. The contact endpoints manage WHOIS contact handles owned by your account; they do not perform WHOIS lookups for third-party domains. Use a dedicated WHOIS API if external WHOIS data is required.

### Can I limit what my agent is allowed to do with the Ola.cv Domain Management API?

Yes. Because you run Jentic One yourself, your own rules decide which Ola.cv operations and credentials the agent may use. Since Ola.cv puts zone and record IDs in the URL path, such as `/api/v1/zones/{zoneId}/records/{recordId}`, you can pin the agent to a single zone and grant only the calls it needs, such as checking domain availability with POST `/api/v1/domains/check` or reading records with GET `/api/v1/zones/{id}/records.` Registering a domain via POST `/api/v1/domains` stays out of reach unless you explicitly allow it.
