API: App Market

Browse apps and deploy one onto a running VM.

Browsing the catalog is public. Deploying is asynchronous: start it, then poll the VM's deployment list.

List apps

GET /appmarket/apps

Returns the App Market catalog. Filter by category or target.

Authentication: None, this endpoint is public.

Query parameters

Field Type Values
category string vpn_proxy, dev_tools, framework_starter
target string vm

Responses

  • 200 OK. Returns: data (list of AppCatalogEntry).

Example

curl -X GET https://veneshcloud.ir/api/appmarket/apps \
  -H "Accept: application/json"

Get an app

GET /appmarket/apps/{appCatalogEntry}

Returns one app, looked up by its slug.

Authentication: None, this endpoint is public.

Path parameters

Field Type
appCatalogEntry string

Responses

  • 200 OK. Returns: data (AppCatalogEntry).
  • 404 Not found

Example

curl -X GET https://veneshcloud.ir/api/appmarket/apps/APP_SLUG \
  -H "Accept: application/json"

List deployments on a VM

GET /orders/{order}/apps/deployments

Returns the deployment history and status for the VM.

Authentication: Send your API key or token as a bearer token.

Path parameters

Field Type
order integer

Responses

  • 200 OK. Returns: data (list of AppDeployment).
  • 403 Not allowed, the resource is not yours

Example

curl -X GET https://veneshcloud.ir/api/orders/ORDER_ID/apps/deployments \
  -H "Authorization: Bearer $VENESH_API_KEY" \
  -H "Accept: application/json"

Deploy an app

POST /orders/{order}/apps/{appCatalogEntry}/deploy

Starts installing the app on a running VM. Poll the deployments list for the result.

Authentication: Send your API key or token as a bearer token.

Path parameters

Field Type
order integer
appCatalogEntry string

Request body (application/json)

Field Type Required Values
operation_id string No

Responses

  • 200 OK. Returns AppDeployment.
  • 403 Not allowed, the resource is not yours
  • 422 Validation error, or not allowed in the current state

Example

curl -X POST https://veneshcloud.ir/api/orders/ORDER_ID/apps/APP_SLUG/deploy \
  -H "Authorization: Bearer $VENESH_API_KEY" \
  -H "Accept: application/json"

Objects

Field lists for the objects returned above.

AppCatalogEntry

Field Type Values
id integer
slug string
name string
category string vpn_proxy, dev_tools, framework_starter
target string vm
description string
logo_url string

AppDeployment

Field Type Values
id integer
order_id integer
app AppCatalogEntry
operation_id string
status string queued, running, succeeded, failed
output string
failure_reason string
started_at string
finished_at string
created_at string