Skip to main content

CloudYali Developer Resources

Everything you need to work with CloudYali programmatically: the CloudYali public API, its OpenAPI 3.1 specification, structured error codes, and the agent-readable endpoints this site publishes. CloudYali is a FinOps platform for cloud cost visibility and management across AWS, Azure and GCP.

Product documentation lives at docs.cloudyali.io. API keys and account settings live in the CloudYali console.

CloudYali API quickstart

The public API needs no authentication. Start from the discovery document, then load the specification.

curl https://www.cloudyali.io/api
curl https://www.cloudyali.io/openapi.json
curl https://www.cloudyali.io/api/v1/features

Every successful response uses the envelope { "success": true, "data": … }. Every failure uses the structured error envelope described below.

CloudYali public API endpoints

Reachable, unauthenticated endpoints served from https://www.cloudyali.io.

CloudYali public API endpoints
ResourceFormatDescription
/openapi.jsonOpenAPI specification (JSON)OpenAPI 3.1 / JSONThe complete machine-readable description of the CloudYali public API. Every operation has a unique operationId, typed parameters and response schemas, so it can be loaded directly into an LLM function-calling toolchain.
/api/openapi.yamlOpenAPI specification (YAML)OpenAPI 3.1 / YAMLThe same specification served as YAML for tools that prefer it.
/apiAPI indexJSONDiscovery document listing every public CloudYali endpoint with its operation id and description. Start here.
/api/v1/healthService healthJSONLiveness check for the CloudYali public API.
/api/v1/featuresProduct capability catalogJSONEvery CloudYali FinOps capability with the cloud providers it covers — cost visibility, cost savings, budget management, asset inventory, tag governance, AI cost tracking and integrations.
/api/v1/blogsBlog post indexJSONPaginated list of published CloudYali articles on FinOps and cloud cost management, with canonical and Markdown URLs.
/api/v1/blogs/aws-backup-cold-tierSingle blog postJSONOne article by slug, including the full body rendered as Markdown.
/api/demo-requestDemo requestJSONPOST a DemoRequest to reach the CloudYali sales team. GET returns endpoint availability without submitting anything.

CloudYali API authentication

The endpoints listed above are public and require no credentials. The authenticated CloudYali platform API — the one that returns your own cost, budget and inventory data — is scoped to your account and is provisioned from the CloudYali console. Contact support@cloudyali.io for access and the current endpoint reference.

CloudYali API error codes

Every non-2xx response from a CloudYali endpoint is JSON — never an HTML error page. The code field is stable and safe to branch on, and hint tells you what to do about it.

{
  "success": false,
  "error": {
    "code": "validation_error",
    "message": "Missing required field: businessEmail",
    "hint": "Provide every field listed in `details.required_fields` and retry.",
    "details": { "missing_fields": ["businessEmail"] },
    "documentation_url": "https://www.cloudyali.io/developers",
    "request_id": "3f1c9a54-6f0e-4a1e-9a2d-0b7c2f5f1a44"
  }
}
CloudYali API error codes
CodeHTTPMeaning
bad_request400A query or path parameter was malformed.
invalid_json400The request body was not a valid JSON object.
validation_error400 / 422A field failed validation. `details` names it.
not_found404No such endpoint or resource.
method_not_allowed405That HTTP method is not supported for the path.
rate_limited429Too many requests. Honour `Retry-After`.
upstream_error502A dependency failed. The request was not applied.
configuration_error500The endpoint is not fully configured server-side.
internal_error500Unexpected server error.

CloudYali resources for AI agents

CloudYali publishes machine-readable versions of its content so agents do not have to scrape rendered HTML.

CloudYali agent resources
ResourceFormatDescription
/llms.txtllms.txttext/plainCondensed, LLM-friendly summary of CloudYali: what the product does, how it compares to alternatives, and where the canonical pages live.
/llms-full.txtllms-full.txttext/plainThe expanded version, including the full content inventory.
/.well-known/agent-skills/index.jsonAgent skills manifestJSONMachine-readable list of the agent capabilities this site exposes, with content hashes.
/agent-markdown/blogsMarkdown rendering of any pagetext/markdownPrefix any CloudYali path with /agent-markdown to get a clean Markdown rendering with no navigation chrome. Requesting a page with Accept: text/markdown does the same thing.
/sitemap.xmlSitemapXMLEvery indexable CloudYali URL with last-modified timestamps.
/robots.txtrobots.txttext/plainCrawl policy. CloudYali explicitly allows AI crawlers and declares Content-Signal permissions.

Using CloudYali with LLM function calling

The CloudYali OpenAPI document is written to convert cleanly into tool definitions: every operation has a unique operationId, a description written for a model rather than a human skimming docs, typed parameters with explicit bounds, and a declared response schema.

# Operation ids exposed by the CloudYali public API
getApiIndex            GET  /api
getServiceHealth       GET  /api/v1/health
listProductFeatures    GET  /api/v1/features
listBlogPosts          GET  /api/v1/blogs
getBlogPostBySlug      GET  /api/v1/blogs/{slug}
getDemoRequestStatus   GET  /api/demo-request
submitDemoRequest      POST /api/demo-request

CloudYali CLI

An official CloudYali command-line tool is on the roadmap and is not yet published. Until it ships, the public endpoints above are plain HTTP and work with curl and jq, and the OpenAPI specification can be fed to a generator such as openapi-generator to produce a client in your language of choice. If a CLI would unblock you, tell us at support@cloudyali.io — it moves things up the queue.

CloudYali developer support

Questions about the CloudYali API, integrations or agent access: support@cloudyali.io. Include the request_id from any error response — it lets us find the exact request in our logs.