Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Krova Cloud API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fkrova.cloud%2Fkrova" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fkrova.cloud%2Fkrova" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Krova Cloud API.
Provision a Cube from an OS image with vcpu, ramGb, and diskGb resources, an sshPublicKey, an optional region, and a cloud-init userData script
Power off, wake, or restart a Cube, and toggle terminationProtection so it cannot be deleted by mistake
Attach a custom domain to a Cube with proxy options such as ipAllowList, corsConfig, and responseCompression, then read the DNS records it needs and their live status
Forward TCP ports to a Cube with an optional IP whitelist and UDP support
GET STARTED
Snapshot a Cube, restore it from a snapshotId, and generate a presigned download URL for a backup archive
Offer a backup to another Space and accept, decline, or cancel pending backup shares
Register webhook endpoints for events like cube.created, cube.error, or backup.created and read the last 30 days of delivery history
Patterns agents use Krova Cloud API for, with concrete tasks.
★ On-Demand Dev and Test Servers
A developer agent spins up a throwaway server for a branch or experiment. It reads available regions and OS images, creates a Cube with the required name, image, resources, and sshPublicKey, fetches SSH connection details for the new Cube, and powers it off or deletes it when the work is done. An Idempotency-Key header on the create call makes a retried request safe.
Call GET /regions and GET /images, then POST /spaces/{spaceId}/cubes with name 'feature-auth-test', image from the list, resources {vcpu: 2, ramGb: 4, diskGb: 40}, and an ssh-ed25519 sshPublicKey, then GET /spaces/{spaceId}/cubes/{cubeId}/ssh
Publishing an App on a Custom Domain
Once an app runs on a Cube, the agent attaches a custom domain and port, reads the DNS records the mapping requires along with their live status, and tunes proxy settings such as securityHeadersMode or ipAllowList through the domain update operation. Raw TCP services such as databases or game servers get a TCP port forward instead.
Call POST /spaces/{spaceId}/cubes/{cubeId}/domains with domain 'app.example.com' and port 3000, then GET /spaces/{spaceId}/cubes/{cubeId}/domains/{mappingId}/records to list the DNS records to create
Snapshot Before Risky Changes
Before an upgrade or migration, the agent snapshots the Cube, performs the change, and restores from the snapshotId if something breaks. Backups can be listed newest first, downloaded through a presigned URL, or offered to another Space, which accepts or declines the share.
Call POST /spaces/{spaceId}/cubes/{cubeId}/snapshots with name 'pre-upgrade', run the upgrade, and on failure call POST /spaces/{spaceId}/cubes/{cubeId}/restore with that snapshotId
AI Agent Infrastructure Control via Jentic
An operations agent drives Krova Cloud through Jentic without handling the X-API-KEY itself. It searches by intent, receives the matching Cube operation with its input schema, and executes with the key injected at run time, so restarting a stuck server or reading webhook deliveries becomes one step in a larger runbook.
Search Jentic for 'restart a Krova Cube', load the POST /spaces/{spaceId}/cubes/{cubeId}/restart schema, and execute it for the target spaceId and cubeId
45 endpoints — the krova cloud api provisions and runs cubes, krova's virtual servers, inside a space: create one from an os image with a vcpu, ramgb, and diskgb sizing and an ssh public key, then power it off, wake it, restart it, or delete it.
METHOD
PATH
DESCRIPTION
/spaces/{spaceId}/cubes
Create a Cube
/spaces/{spaceId}/cubes
List Cubes in a Space
/spaces/{spaceId}/cubes/{cubeId}/restart
Restart a running Cube
/spaces/{spaceId}/cubes/{cubeId}/power-off
Power off a running Cube
/spaces/{spaceId}/cubes/{cubeId}/domains
Attach a custom domain
/spaces/{spaceId}/cubes/{cubeId}/snapshots
Create a snapshot
/spaces/{spaceId}/webhooks
Create a webhook endpoint
/regions
List regions with available capacity
/spaces/{spaceId}/cubes
Create a Cube
/spaces/{spaceId}/cubes
List Cubes in a Space
/spaces/{spaceId}/cubes/{cubeId}/restart
Restart a running Cube
/spaces/{spaceId}/cubes/{cubeId}/power-off
Power off a running Cube
/spaces/{spaceId}/cubes/{cubeId}/domains
Attach a custom domain
/spaces/{spaceId}/cubes/{cubeId}/snapshots
Create a snapshot
/spaces/{spaceId}/webhooks
Create a webhook endpoint
/regions
List regions with available capacity
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Krova Cloud by hand means sending a Space-scoped X-API-KEY, sending an Idempotency-Key on creates, and staying inside the mutating-call rate limit yourself. Through Jentic you install once, import Krova Cloud from the API Directory, store the key once, and your agent calls it.
Permission scoping
Krova Cloud puts both the Space id and the Cube id in the URL path (/spaces/{spaceId}/cubes/{cubeId}/...), so a rule can pin your agent to one Cube and the operations you pick. You choose that set, so destructive ones like Cube deletion or snapshot deletion are not included unless you add them.
Credential isolation
Your Krova Cloud key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'create a virtual server' or 'snapshot a Cube', and Jentic returns the matching Krova Cloud operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Krova Cloud API through Jentic.
What authentication does the Krova Cloud API use?
Per its OpenAPI spec, the Krova Cloud API uses the ApiKeyAuth scheme: an API key in the X-API-KEY header. Keys are scoped to one Space and inherit the permissions of the membership that created them. The regions, images, and pricing endpoints and the CLI device-login endpoints need no key. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at execution time.
What are the rate limits for the Krova Cloud API?
The OpenAPI spec states that mutating POST and DELETE endpoints are rate-limited to 10 requests per 60 seconds per client IP. Reads are not given a limit in the spec, so pace bulk create or delete loops accordingly.
Can I attach a custom domain to a Cube with the Krova Cloud API?
Yes. Send domain and port to the Cube's domains endpoint, with optional proxy settings such as securityHeadersMode, ipAllowList, ipDenyList, corsConfig, and responseCompression. The records endpoint for that mapping then lists the DNS records the domain needs and whether each is live, and the mapping can be updated or detached later.
How do I restart a Cube through Jentic with the Krova Cloud API?
Search Jentic for 'restart a Krova Cube' and it returns the restart operation with its input schema. Execute POST /spaces/{spaceId}/cubes/{cubeId}/restart with the Space and Cube ids, and the key is injected at run time. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Is there a Krova Cloud MCP server?
You don't need an MCP server to give your agent the Krova Cloud API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it. Operations are discovered by intent on demand, so no extra server's tool definitions fill the agent's context.
Can I limit what my agent is allowed to do with the Krova Cloud API?
Yes. Write a rule that allows only the power-off, wake, and restart operations plus GET on one cubeId, and the agent can recover that single server while every other Cube, snapshot, and domain stays untouched. Each call runs through your own instance, where it is logged.
For Agents
Create, start, stop, and restart Krova Cubes, attach custom domains and TCP forwards, snapshot and restore them, and subscribe to lifecycle webhooks, all within the Space your API key belongs to.
Use for: Spin up a 2 vCPU Ubuntu Cube with my SSH key, Restart the Cube that stopped responding, List the regions that currently have capacity, Take a snapshot of my web server before I upgrade it
Not supported: Does not handle managed databases, Kubernetes clusters, object storage, or domain registration. Use for provisioning and operating Krova Cubes, their domains, snapshots, and backups only.
The Krova Cloud API provisions and runs Cubes, Krova's virtual servers, inside a Space: create one from an OS image with a vcpu, ramGb, and diskGb sizing and an SSH public key, then power it off, wake it, restart it, or delete it. It also attaches custom domains with proxy settings and DNS record checks, forwards TCP ports, takes and restores snapshots, shares backups between Spaces, imports .cube archives, and sends signed webhooks for events such as cube.running or snapshot.created. Keys are scoped per Space and sent in the X-API-KEY header.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>