Link Application
curl --request POST \
--url https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}import requests
url = "https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyApps & Databases
Link Application
Links one of your applications to the workspace. Owner only.
POST
/
v1
/
workspaces
/
{id}
/
apps
/
{app_id}
Link Application
curl --request POST \
--url https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}import requests
url = "https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyOnly the workspace owner can call this — not a permission, no role grants it. An API key
needs the
A resource belongs to at most one workspace at a time; linking it to a new one implicitly
removes it from the old one.
workspaces:write scope.
The application must be owned by the same user calling this (
owner_id is checked against the
caller). Without that check, anyone could link someone else’s app into their own workspace and
gain access to it through workspace membership.Path
string
required
Workspace ID.
string
required
Application ID. Must be owned by the caller.
Response
Empty response on success.Errors
| Status | Code | When |
|---|---|---|
| 403 | WORKSPACE_OWNER_ONLY | Caller isn’t the workspace owner. |
| 403 | PLAN_RESTRICTED_FEATURE | Owner’s plan is frozen. |
| 404 | WORKSPACE_NOT_FOUND | Workspace doesn’t exist or you’re not a member. |
| 404 | APP_NOT_FOUND | Application doesn’t exist or isn’t owned by the caller. |