Cosmo by Humanizing public content API
Five read-only GET endpoints returning the Cosmo product catalogue, pricing and company details as JSON. No authentication, no rate limit, CORS open, cached at the edge for five minutes.
Base URL and specification
Base URL https://cosmo.humanizing.com. The machine-readable description lives at /openapi.json (OpenAPI 3.1). Every operation there carries a unique operationId, a description, typed parameters and a response schema, so it converts directly into LLM function-calling tool definitions.
curl -s https://cosmo.humanizing.com/openapi.json | jq '.paths | keys'Operations
| Operation | Endpoint | operationId |
|---|---|---|
| Check API availability | GET /api/v1/health | getHealth |
| List Cosmo products | GET /api/v1/products | listProducts |
| Get one Cosmo product | GET /api/v1/products/{productId} | getProduct |
| List plans and add-ons | GET /api/v1/pricing | listPricingPlans |
| Get company and contact details | GET /api/v1/company | getCompanyProfile |
GET /api/v1/health
Returns the service name, the API version and the current server time. Use it to confirm the API is reachable before issuing other calls.
Takes no parameters.
GET /api/v1/products
Lists every Cosmo product with its category, the channels it runs on and a link to its product page. Filter by category to narrow the result.
category(query, optional) — Return only products in this family.
GET /api/v1/products/{productId}
Returns a single product by its stable id. Ids are returned by listProducts and do not change.
productId(path, required) — Stable product identifier.
GET /api/v1/pricing
Returns every published Cosmo plan with list prices, included credits and headline features, plus the add-ons that can be combined with any plan. Prices are in EUR and exclude VAT.
interval(query, optional) — Return only the price for this billing interval. Omit to receive both.
GET /api/v1/company
Returns the registered company behind Cosmo: legal name, postal address, VAT id, commercial register entry, contact email and phone, official social profiles and the industries Cosmo publishes solution pages for.
Takes no parameters.
Examples
# List every product
curl -s https://cosmo.humanizing.com/api/v1/products
# One product by id
curl -s https://cosmo.humanizing.com/api/v1/products/voicebot
# Monthly plan prices only
curl -s "https://cosmo.humanizing.com/api/v1/pricing?interval=monthly"
# Registered company and contact details
curl -s https://cosmo.humanizing.com/api/v1/company
# Endpoint index
curl -s https://cosmo.humanizing.com/api/v1Error format
Every non-2xx response uses one envelope. Branch on error.code, show error.message, and act on error.resolution.
{
"error": {
"code": "not_found",
"status": 404,
"message": "No Cosmo product with id 'chatbots'.",
"resolution": "Call GET /api/v1/products to list valid ids (chatbot, voicebot, reception-kiosk).",
"documentation_url": "https://cosmo.humanizing.com/developers/api"
}
}| error.code | HTTP status |
|---|---|
invalid_request | 400 |
unauthorized | 401 |
not_found | 404 |
method_not_allowed | 405 |
not_acceptable | 406 |
unsupported_media_type | 415 |
rate_limited | 429 |
internal_error | 500 |
A 405 always carries an Allow header. Unknown paths under /api/v1/ return the same JSON envelope rather than an HTML page.
curl -s https://cosmo.humanizing.com/api/v1/does-not-exist
curl -s -X POST https://cosmo.humanizing.com/api/v1/pricingUsing the spec for function calling
Each operation maps one-to-one onto a tool definition: operationId becomes the function name, description the function description, and the parameter schemas the argument schema. The same operations are already published as Model Context Protocol tools — see the Cosmo MCP server.