curl --request POST \
--url 'https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=' \
--header 'Content-Type: application/json' \
--data '
{
"arguments": {
"startDateTime": "2026-08-27T15:00:00Z",
"endDateTime": "2026-08-27T16:00:00Z",
"timeZone": "America/Denver"
}
}
'import requests
url = "https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token="
payload = { "arguments": {
"startDateTime": "2026-08-27T15:00:00Z",
"endDateTime": "2026-08-27T16:00:00Z",
"timeZone": "America/Denver"
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
arguments: {
startDateTime: '2026-08-27T15:00:00Z',
endDateTime: '2026-08-27T16:00:00Z',
timeZone: 'America/Denver'
}
})
};
fetch('https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=', 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.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'arguments' => [
'startDateTime' => '2026-08-27T15:00:00Z',
'endDateTime' => '2026-08-27T16:00:00Z',
'timeZone' => 'America/Denver'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token="
payload := strings.NewReader("{\n \"arguments\": {\n \"startDateTime\": \"2026-08-27T15:00:00Z\",\n \"endDateTime\": \"2026-08-27T16:00:00Z\",\n \"timeZone\": \"America/Denver\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
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.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=")
.header("Content-Type", "application/json")
.body("{\n \"arguments\": {\n \"startDateTime\": \"2026-08-27T15:00:00Z\",\n \"endDateTime\": \"2026-08-27T16:00:00Z\",\n \"timeZone\": \"America/Denver\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"arguments\": {\n \"startDateTime\": \"2026-08-27T15:00:00Z\",\n \"endDateTime\": \"2026-08-27T16:00:00Z\",\n \"timeZone\": \"America/Denver\"\n }\n}"
response = http.request(request)
puts response.read_body{
"function": {
"appId": "<string>",
"appVersion": "<string>",
"name": "<string>"
},
"result": {},
"success": true
}Run an enabled app function
Runs one function returned by GET /api/v2/apps/functions. Use the exact appId, appVersion, and name from the latest catalog response, and send an arguments object that matches its parameters JSON Schema. Vida re-resolves the published Agent configuration and rejects functions that are no longer assigned and enabled, or whose app is no longer installed. Do not send caller, account, Agent configuration, provider credentials, or app manifest data—Vida supplies the required context server-side. Each POST executes the function directly; after an ambiguous timeout on a function that changes external data, confirm the outcome before retrying it.
curl --request POST \
--url 'https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=' \
--header 'Content-Type: application/json' \
--data '
{
"arguments": {
"startDateTime": "2026-08-27T15:00:00Z",
"endDateTime": "2026-08-27T16:00:00Z",
"timeZone": "America/Denver"
}
}
'import requests
url = "https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token="
payload = { "arguments": {
"startDateTime": "2026-08-27T15:00:00Z",
"endDateTime": "2026-08-27T16:00:00Z",
"timeZone": "America/Denver"
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
arguments: {
startDateTime: '2026-08-27T15:00:00Z',
endDateTime: '2026-08-27T16:00:00Z',
timeZone: 'America/Denver'
}
})
};
fetch('https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=', 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.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'arguments' => [
'startDateTime' => '2026-08-27T15:00:00Z',
'endDateTime' => '2026-08-27T16:00:00Z',
'timeZone' => 'America/Denver'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token="
payload := strings.NewReader("{\n \"arguments\": {\n \"startDateTime\": \"2026-08-27T15:00:00Z\",\n \"endDateTime\": \"2026-08-27T16:00:00Z\",\n \"timeZone\": \"America/Denver\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
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.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=")
.header("Content-Type", "application/json")
.body("{\n \"arguments\": {\n \"startDateTime\": \"2026-08-27T15:00:00Z\",\n \"endDateTime\": \"2026-08-27T16:00:00Z\",\n \"timeZone\": \"America/Denver\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vida.dev/api/v2/apps/{appId}/{appVersion}/functions/{functionName}?token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"arguments\": {\n \"startDateTime\": \"2026-08-27T15:00:00Z\",\n \"endDateTime\": \"2026-08-27T16:00:00Z\",\n \"timeZone\": \"America/Denver\"\n }\n}"
response = http.request(request)
puts response.read_body{
"function": {
"appId": "<string>",
"appVersion": "<string>",
"name": "<string>"
},
"result": {},
"success": true
}Authorizations
Vida API Token
Path Parameters
App identifier returned by GET /api/v2/apps/functions.
1App version returned by GET /api/v2/apps/functions.
1Function name returned by GET /api/v2/apps/functions.
1Query Parameters
Computer Agent account whose enabled app functions should be used.
Body
Arguments matching the selected function's parameters JSON Schema.