DocsCloud SDK reference

BEEOS CLOUD / DEVELOPER REFERENCE

Catalog

Providers, deploy regions and models, instance and agent templates, and the protocol discovery document.

Overview

The catalog domain lists what you can choose from when you create resources: providers, deploy regions and models, instance templates, and agent templates. It also serves the protocol discovery document, which needs no authentication.

8 operations · SDK resource: TypeScript cloud.catalog · Python cloud.catalog · Go cloud.Catalog · API overview

Operations whose path starts with /uhp/v1 are served from https://api.cloud.beeos.ai/uhp/v1 instead of https://api.cloud.beeos.ai/v1; the SDKs switch automatically.

Main objects

InstanceTemplate

FieldTypeRequiredDescription
idstringyesID of the template.
namestringyesDisplay name of the template.
descriptionstringnoDescription of the template.
logo_urlstringno—
sort_orderintegerno—
harnessstringno—
provider_idstringno—
specsarray<CatalogSpec>no—
variantsarray<CatalogVariant>noDeployable variants of the template. Send a variant's id as variant_id when creating an instance.

Every field, and the methods that use this object: appendix.

CatalogVariant

FieldTypeRequiredDescription
idstringyesID of the variant. Send it as variant_id when creating an instance.
spec_value_idsarray<string>yes—
sort_orderintegeryes—

Every field, and the methods that use this object: appendix.

Provider

FieldTypeRequiredDescription
idstringyesID of the provider.
namestringyesDisplay name of the provider.
descriptionstringno—
capabilitiesProviderCapabilitiesno—

Every field, and the methods that use this object: appendix.

DeployRegion

FieldTypeRequiredDescription
idstringyesID of the region.
namestringyesDisplay name of the region.
availablebooleanyesWhether the region is currently available.

Every field, and the methods that use this object: appendix.

DeployModel

FieldTypeRequiredDescription
idstringyesID of the model, usually in provider/model form.
namestringyesDisplay name of the model.
tierstringno—
reasoningbooleanno—
inputarray<string>no—
context_windowintegernoMaximum context window of the model, in tokens.

Every field, and the methods that use this object: appendix.

agentTemplateCatalogView

FieldTypeRequiredDescription
idstringyesID of the template. Pass it as template_id when creating a harness from the template.
display_namestringyesDisplay name of the template, in the language of Accept-Language when a translation exists.
summarystringyesOne-line summary of what the template is for, localized like display_name.
descriptionstringyesFull description of the template, localized like display_name.
categorystringyesCategory the template is listed under. Use it as the category filter of the list operation.
vibestringyesShort phrase describing the personality of the agent the template creates, localized like display_name.
icon_urlstringyesURL of the template icon. Empty when the template has none.
banner_urlstringyesURL of the template banner image. Empty when the template has none.
default_modelstringyesID of the model the template selects as the agent's primary model.
tagsarray<string>yesTags that describe the template.
harnessstringyesHarness (agent runtime) the template is applied to, for example openclaw.
template_versionstringyesVersion of the template package, as a semantic version such as 1.2.0.

Every field, and the methods that use this object: appendix.

UHPDiscovery

FieldTypeRequiredDescription
objectstringyesObject type: always uhp.discovery. Allowed values: "uhp.discovery" — A protocol discovery document.
protocolstringyesProtocol the server speaks: always uhp, the Unified Harness Protocol. Allowed values: "uhp" — The Unified Harness Protocol.
versionsarray<string>yesProtocol versions the server speaks, as values of the UHP-Version header. Constraints: minItems=1.
default_versionstringyesProtocol version the server uses when a request does not send a UHP-Version header.
conformance_classstringyesCoarse conformance class of the server. Branch on the flags in capabilities, which are exact, rather than on the class. Allowed values: "core" — Discovery, harness reads, tasks and sessions; "extended" — Core plus file input and artifact retrieval; "full" — Extended plus harness management, plugins, environments and memories. (enum table)
capabilitiesUHPCapabilitiesyesWhat the server can do. A flag is true only when the endpoints behind it answer.
plugin_schemasarray<string>noThe Agent Plugins manifest schema identifiers this server installs. Present and non-empty when capabilities.plugins is true.
implementationobjectnoInformation about the server. Besides name and version it may carry availability, a statement of how model availability is computed.
implementation.namestringnoName of the server implementation: BeeOS Cloud.
implementation.versionstringnoVersion of the server implementation. Omitted when it is not known.

Every field, and the methods that use this object: appendix.

CatalogSpec

FieldTypeRequiredDescription
idstringyes—
namestringyes—
labelstringyes—
valuesarray<CatalogSpecValue>yes—

Every field, and the methods that use this object: appendix.

ProviderCapabilities

FieldTypeRequiredDescription
long_runningbooleanyes—
browser_usebooleanyes—
code_execbooleanyes—
file_systembooleanyes—
custom_imagebooleanyes—
devicebooleanyes—
max_duration_secintegeryes—
cost_modelstringyes—

Every field, and the methods that use this object: appendix.

UHPCapabilities

Named booleans. A server reports false for a capability it does not implement rather than omitting it, so a client can distinguish "not supported" from "server predates this field". A client treats an absent key as false.

FieldTypeRequiredDescription
streamingbooleannoThe server can stream a response as server-sent events.
sessionsbooleannoThe server keeps sessions that later requests can continue.
cancellationbooleannoA running response can be cancelled.
files_inputbooleannoThe server accepts files as input to a request.
files_outputbooleannoThe server returns files that a harness produced.
session_listingbooleannoThe server can list existing sessions.
harness_managementbooleannoHarnesses can be created, updated and deleted through the API.
session_sharingbooleannoThe server can share a session with other callers.
idempotencybooleannoThe server honors the Idempotency-Key header on the writes that accept it.
pluginsbooleannoThe server installs Agent Plugins packages into harnesses, serves their files, and exports a harness as a package. Optional at every class.
environmentsbooleannoThe server holds environments: a project's files and installed dependencies, built once, read-only at a fixed path in every session that names one. Optional at every class.
memoriesbooleannoThe server holds memories: a tree of memories with access granted per node, records kept by a connected provider, and tools a harness's agent reaches them with. Optional at every class.

Every field, and the methods that use this object: appendix.

Typical flow

  1. List the templates with catalog.listInstanceTemplates and read one with catalog.getInstanceTemplate to choose a variant.
  2. Check the choices for placement and models with catalog.listProviders, catalog.listRegions, and catalog.listModels.
  3. Create the instance with instances.create.
  4. catalog.listAgentTemplates and catalog.getAgentTemplate list the agent templates; catalog.getDiscovery tells a client which protocol versions the server speaks.

Methods

MethodHTTPSummary
catalog.listAgentTemplatesGET /v1/agent-templatesList agent templates
catalog.getAgentTemplateGET /v1/agent-templates/{id}Get an agent template
catalog.listModelsGET /v1/deploy/modelsList deploy models
catalog.listRegionsGET /v1/deploy/regionsList deploy regions
catalog.listInstanceTemplatesGET /v1/instance-templatesList instance templates
catalog.getInstanceTemplateGET /v1/instance-templates/{templateId}Get an instance template
catalog.listProvidersGET /v1/providersList providers
catalog.getDiscoveryGET /uhp/v1/uhpProtocol discovery document

catalog.listAgentTemplates

GET /v1/agent-templates · Operation ID listAgentTemplates

List agent templates

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.listAgentTemplateslistAgentTemplates(query?: Models.ListAgentTemplatesQuery): Promise<Models.ListAgentTemplatesResponse>
Pythoncloud.catalog.list_agent_templatesdef list_agent_templates(self, options: ListAgentTemplatesOptions | None = None) -> ListAgentTemplatesResponse
Gocloud.Catalog.ListAgentTemplatesfunc (r *CatalogResource) ListAgentTemplates(ctx context.Context, options ListAgentTemplatesOptions) (ListAgentTemplatesResponse, error)

Parameters

ParameterInTypeRequiredDescription
categoryquerystringnoReturn only templates in this category, at most 128 characters. It must equal the category of the template.
searchquerystringnoCase-insensitive substring match on the template's display name or summary, at most 256 characters.
pagequeryintegerno1-based page number, from 1 to 1000000. Defaults to 1.
page_sizequeryintegernoNumber of templates per page, from 1 to 100. Defaults to 50.

Response

200 · application/json

FieldTypeRequiredDescription
dataarray<agentTemplateCatalogView>yes—
totalintegeryes—

Errors

StatusSchemaDescription
other (default)ErrorResponseCloud Server error

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.listAgentTemplates();
console.log(result);

catalog.getAgentTemplate

GET /v1/agent-templates/{id} · Operation ID getAgentTemplate

Get an agent template

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.getAgentTemplategetAgentTemplate(id: string): Promise<Models.GetAgentTemplateResponse>
Pythoncloud.catalog.get_agent_templatedef get_agent_template(self, id: str) -> agentTemplateCatalogView
Gocloud.Catalog.GetAgentTemplatefunc (r *CatalogResource) GetAgentTemplate(ctx context.Context, id string) (agentTemplateCatalogView, error)

Parameters

ParameterInTypeRequiredDescription
idpathstringyesID of the agent template.

Response

200 · application/json · Schema: agentTemplateCatalogView

FieldTypeRequiredDescription
idstringyesID of the template. Pass it as template_id when creating a harness from the template.
display_namestringyesDisplay name of the template, in the language of Accept-Language when a translation exists.
summarystringyesOne-line summary of what the template is for, localized like display_name.
descriptionstringyesFull description of the template, localized like display_name.
categorystringyesCategory the template is listed under. Use it as the category filter of the list operation.
vibestringyesShort phrase describing the personality of the agent the template creates, localized like display_name.
icon_urlstringyesURL of the template icon. Empty when the template has none.
banner_urlstringyesURL of the template banner image. Empty when the template has none.
default_modelstringyesID of the model the template selects as the agent's primary model.
tagsarray<string>yesTags that describe the template.
harnessstringyesHarness (agent runtime) the template is applied to, for example openclaw.
template_versionstringyesVersion of the template package, as a semantic version such as 1.2.0.

Errors

StatusSchemaDescription
other (default)ErrorResponseCloud Server error

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.getAgentTemplate("id_123");
console.log(result);

catalog.listModels

GET /v1/deploy/models · Operation ID listDeployModels

List deploy models

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.listModelslistModels(query?: Models.ListDeployModelsQuery): Promise<Models.ListDeployModelsResponse>
Pythoncloud.catalog.list_modelsdef list_models(self, options: ListDeployModelsOptions | None = None) -> ModelPage
Gocloud.Catalog.ListModelsfunc (r *CatalogResource) ListModels(ctx context.Context, options ListDeployModelsOptions) (ModelPage, error)

Parameters

ParameterInTypeRequiredDescription
harnessquerystringnoNot supported: sending it returns 400 invalid_request.
searchquerystringnoCase-insensitive substring match on the model name.

Response

200 Deploy models · application/json · Schema: ModelPage

FieldTypeRequiredDescription
dataarray<DeployModel>yesModels that match the filters.
totalintegeryesNumber of models that match the filters.

Errors

StatusSchemaDescription
other (default)ErrorResponseCloud Server error

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.listModels();
console.log(result);

catalog.listRegions

GET /v1/deploy/regions · Operation ID listDeployRegions

List deploy regions

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.listRegionslistRegions(query?: Models.ListDeployRegionsQuery): Promise<Models.ListDeployRegionsResponse>
Pythoncloud.catalog.list_regionsdef list_regions(self, options: ListDeployRegionsOptions | None = None) -> RegionPage
Gocloud.Catalog.ListRegionsfunc (r *CatalogResource) ListRegions(ctx context.Context, options ListDeployRegionsOptions) (RegionPage, error)

Parameters

ParameterInTypeRequiredDescription
provider_idquerystringnoReturn only regions of this provider.
availablequerybooleannotrue returns only available regions and false only unavailable ones. Any other value returns 400 invalid_request.

Response

200 Deploy regions · application/json · Schema: RegionPage

FieldTypeRequiredDescription
dataarray<DeployRegion>yesRegions that match the filters.
totalintegeryesNumber of regions that match the filters.

Errors

StatusSchemaDescription
other (default)ErrorResponseCloud Server error

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.listRegions();
console.log(result);

catalog.listInstanceTemplates

GET /v1/instance-templates · Operation ID listInstanceTemplates

List instance templates

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.listInstanceTemplateslistInstanceTemplates(query?: Models.ListInstanceTemplatesQuery): Promise<Models.ListInstanceTemplatesResponse>
Pythoncloud.catalog.list_instance_templatesdef list_instance_templates(self, options: ListInstanceTemplatesOptions | None = None) -> InstanceTemplatePage
Gocloud.Catalog.ListInstanceTemplatesfunc (r *CatalogResource) ListInstanceTemplates(ctx context.Context, options ListInstanceTemplatesOptions) (InstanceTemplatePage, error)

Parameters

ParameterInTypeRequiredDescription
pagequeryintegerno1-based page number, from 1 to 1000000. Defaults to 1. Constraints: minimum=1, maximum=1000000.
page_sizequeryintegernoNumber of templates per page, from 1 to 100. Defaults to 50. Constraints: minimum=1, maximum=100.
harnessquerystringnoNot supported: sending it returns 400 invalid_request.
provider_idquerystringnoNot supported: sending it returns 400 invalid_request.
searchquerystringnoNot supported: sending it returns 400 invalid_request.

Response

200 Instance templates · application/json · Schema: InstanceTemplatePage

FieldTypeRequiredDescription
dataarray<InstanceTemplate>yesTemplates on the requested page.
totalintegeryesTotal number of templates that match the filters, across all pages.

Errors

StatusSchemaDescription
other (default)ErrorResponseCloud Server error

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.listInstanceTemplates();
console.log(result);

catalog.getInstanceTemplate

GET /v1/instance-templates/{templateId} · Operation ID getInstanceTemplate

Get an instance template

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.getInstanceTemplategetInstanceTemplate(id: string): Promise<Models.GetInstanceTemplateResponse>
Pythoncloud.catalog.get_instance_templatedef get_instance_template(self, template_id: str) -> InstanceTemplate
Gocloud.Catalog.GetInstanceTemplatefunc (r *CatalogResource) GetInstanceTemplate(ctx context.Context, templateId string) (InstanceTemplate, error)

Parameters

ParameterInTypeRequiredDescription
templateIdpathstringyesID of the instance template. Constraints: minLength=1, maxLength=256.

Response

200 Instance template · application/json · Schema: InstanceTemplate

FieldTypeRequiredDescription
idstringyesID of the template.
namestringyesDisplay name of the template.
descriptionstringnoDescription of the template.
logo_urlstringno—
sort_orderintegerno—
harnessstringno—
provider_idstringno—
specsarray<CatalogSpec>no—
variantsarray<CatalogVariant>noDeployable variants of the template. Send a variant's id as variant_id when creating an instance.

Errors

StatusSchemaDescription
other (default)ErrorResponseCloud Server error

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.getInstanceTemplate("template_123");
console.log(result);

catalog.listProviders

GET /v1/providers · Operation ID listProviders

List providers

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.listProviderslistProviders(query?: Models.ListProvidersQuery): Promise<Models.ListProvidersResponse>
Pythoncloud.catalog.list_providersdef list_providers(self, options: ListProvidersOptions | None = None) -> ProviderPage
Gocloud.Catalog.ListProvidersfunc (r *CatalogResource) ListProviders(ctx context.Context, options ListProvidersOptions) (ProviderPage, error)

Parameters

ParameterInTypeRequiredDescription
capabilityquerystringnoReturn only providers that list this capability, for example instance.

Response

200 Provider catalog · application/json · Schema: ProviderPage

FieldTypeRequiredDescription
dataarray<Provider>yesProviders that match the filters.
totalintegeryesNumber of providers that match the filters.

Errors

StatusSchemaDescription
other (default)ErrorResponseCloud Server error

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.listProviders();
console.log(result);

catalog.getDiscovery

GET /uhp/v1/uhp · Operation ID getDiscovery

Protocol discovery document

Served without authentication: a client must be able to learn whether it is talking to a UHP server, and which versions it speaks, before presenting credentials. The document contains nothing principal-specific.

No authentication required.

SDK methods

LanguageMethodSignature
TypeScriptcloud.catalog.getDiscoverygetDiscovery(): Promise<Models.GetDiscoveryResponse>
Pythoncloud.catalog.get_discoverydef get_discovery(self) -> UHPDiscovery
Gocloud.Catalog.GetDiscoveryfunc (r *CatalogResource) GetDiscovery(ctx context.Context) (UHPDiscovery, error)

Response

200 The discovery document · application/json · Schema: UHPDiscovery

FieldTypeRequiredDescription
objectstringyesObject type: always uhp.discovery. Allowed values: "uhp.discovery" — A protocol discovery document.
protocolstringyesProtocol the server speaks: always uhp, the Unified Harness Protocol. Allowed values: "uhp" — The Unified Harness Protocol.
versionsarray<string>yesProtocol versions the server speaks, as values of the UHP-Version header. Constraints: minItems=1.
default_versionstringyesProtocol version the server uses when a request does not send a UHP-Version header.
conformance_classstringyesCoarse conformance class of the server. Branch on the flags in capabilities, which are exact, rather than on the class. Allowed values: "core" — Discovery, harness reads, tasks and sessions; "extended" — Core plus file input and artifact retrieval; "full" — Extended plus harness management, plugins, environments and memories. (enum table)
capabilitiesUHPCapabilitiesyesWhat the server can do. A flag is true only when the endpoints behind it answer.
plugin_schemasarray<string>noThe Agent Plugins manifest schema identifiers this server installs. Present and non-empty when capabilities.plugins is true.
implementationobjectnoInformation about the server. Besides name and version it may carry availability, a statement of how model availability is computed.
implementation.namestringnoName of the server implementation: BeeOS Cloud.
implementation.versionstringnoVersion of the server implementation. Omitted when it is not known.

Errors

StatusSchemaDescription
other (default)UHPErrorEnvelopeUHP protocol error envelope

The error schemas are described in Errors.

Example

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.catalog.getDiscovery();
console.log(result);