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
200OK. Returns:data(list ofAppCatalogEntry).
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
200OK. Returns:data(AppCatalogEntry).404Not 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
200OK. Returns:data(list ofAppDeployment).403Not 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
200OK. ReturnsAppDeployment.403Not allowed, the resource is not yours422Validation 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 |