Search PPM Snapshots with Workspace Repository Targeting
Search for ascending snapshot candidates that satisfy the provided package constraints. When workspace repositories are provided, the search is targeted to matching server repositories.
curl --request POST \
--url https://mycluster.domino.tech/api/v4/ppm/search \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"constraints": "<string>",
"biocVersion": "<string>",
"forwardLookingSnapshotSearch": false,
"minRVersion": "<string>",
"repo": "<string>",
"repoAllowlist": [
"<string>"
],
"workspaceRepos": [
{
"baseUrl": "<string>",
"currentSnapshot": "<string>",
"fullUrl": "<string>",
"repoName": "<string>"
}
]
}
'import requests
url = "https://mycluster.domino.tech/api/v4/ppm/search"
payload = {
"constraints": "<string>",
"biocVersion": "<string>",
"forwardLookingSnapshotSearch": False,
"minRVersion": "<string>",
"repo": "<string>",
"repoAllowlist": ["<string>"],
"workspaceRepos": [
{
"baseUrl": "<string>",
"currentSnapshot": "<string>",
"fullUrl": "<string>",
"repoName": "<string>"
}
]
}
headers = {
"X-Domino-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
constraints: '<string>',
biocVersion: '<string>',
forwardLookingSnapshotSearch: false,
minRVersion: '<string>',
repo: '<string>',
repoAllowlist: ['<string>'],
workspaceRepos: [
{
baseUrl: '<string>',
currentSnapshot: '<string>',
fullUrl: '<string>',
repoName: '<string>'
}
]
})
};
fetch('https://mycluster.domino.tech/api/v4/ppm/search', 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://mycluster.domino.tech/api/v4/ppm/search",
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([
'constraints' => '<string>',
'biocVersion' => '<string>',
'forwardLookingSnapshotSearch' => false,
'minRVersion' => '<string>',
'repo' => '<string>',
'repoAllowlist' => [
'<string>'
],
'workspaceRepos' => [
[
'baseUrl' => '<string>',
'currentSnapshot' => '<string>',
'fullUrl' => '<string>',
'repoName' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-Api-Key: <api-key>"
],
]);
$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://mycluster.domino.tech/api/v4/ppm/search"
payload := strings.NewReader("{\n \"constraints\": \"<string>\",\n \"biocVersion\": \"<string>\",\n \"forwardLookingSnapshotSearch\": false,\n \"minRVersion\": \"<string>\",\n \"repo\": \"<string>\",\n \"repoAllowlist\": [\n \"<string>\"\n ],\n \"workspaceRepos\": [\n {\n \"baseUrl\": \"<string>\",\n \"currentSnapshot\": \"<string>\",\n \"fullUrl\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-Api-Key", "<api-key>")
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://mycluster.domino.tech/api/v4/ppm/search")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"constraints\": \"<string>\",\n \"biocVersion\": \"<string>\",\n \"forwardLookingSnapshotSearch\": false,\n \"minRVersion\": \"<string>\",\n \"repo\": \"<string>\",\n \"repoAllowlist\": [\n \"<string>\"\n ],\n \"workspaceRepos\": [\n {\n \"baseUrl\": \"<string>\",\n \"currentSnapshot\": \"<string>\",\n \"fullUrl\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/v4/ppm/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"constraints\": \"<string>\",\n \"biocVersion\": \"<string>\",\n \"forwardLookingSnapshotSearch\": false,\n \"minRVersion\": \"<string>\",\n \"repo\": \"<string>\",\n \"repoAllowlist\": [\n \"<string>\"\n ],\n \"workspaceRepos\": [\n {\n \"baseUrl\": \"<string>\",\n \"currentSnapshot\": \"<string>\",\n \"fullUrl\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"repos": [
{
"fullRepoUrl": "<string>",
"message": "<string>",
"repoName": "<string>",
"status": "Success"
}
],
"snapshots": [
{
"packages": [
"<string>"
],
"repo": "<string>",
"repoType": "R",
"snapshot": "<string>"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Body
Comma-separated package constraints (e.g., "ggplot2==3.5.0,dplyr>=1.0.0,sf")
Bioconductor version for Bioconductor repositories (e.g., "3.19", "3.20"). If omitted, auto-discovers latest version
If true, uses currentSnapshot from workspaceRepos as starting point for forward search. Requires workspaceRepos to be provided
Minimum R version for filtering packages (e.g., "4.0", "3.5.0"). If provided, only packages that require this R version or greater will be returned
Specific repository name filter (e.g., "cran", "bioconductor", "pypi"). If omitted, query all enabled repos
Optional list of allowed repository URLs. If provided and non-empty, only results from repos matching these URLs will be returned
Repository type filter. If omitted, query all repository types
R, Bioconductor, Python Array of workspace repositories from renv.lock. If provided, search is limited to matching server repositories
Show child attributes
Show child attributes
Related topics
Get Workspace PPM Config with Repository DetectionUse Posit Package Manager in a workspaceRender PPM Installation SnippetCreate Admin ConfigWas this page helpful?
curl --request POST \
--url https://mycluster.domino.tech/api/v4/ppm/search \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"constraints": "<string>",
"biocVersion": "<string>",
"forwardLookingSnapshotSearch": false,
"minRVersion": "<string>",
"repo": "<string>",
"repoAllowlist": [
"<string>"
],
"workspaceRepos": [
{
"baseUrl": "<string>",
"currentSnapshot": "<string>",
"fullUrl": "<string>",
"repoName": "<string>"
}
]
}
'import requests
url = "https://mycluster.domino.tech/api/v4/ppm/search"
payload = {
"constraints": "<string>",
"biocVersion": "<string>",
"forwardLookingSnapshotSearch": False,
"minRVersion": "<string>",
"repo": "<string>",
"repoAllowlist": ["<string>"],
"workspaceRepos": [
{
"baseUrl": "<string>",
"currentSnapshot": "<string>",
"fullUrl": "<string>",
"repoName": "<string>"
}
]
}
headers = {
"X-Domino-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
constraints: '<string>',
biocVersion: '<string>',
forwardLookingSnapshotSearch: false,
minRVersion: '<string>',
repo: '<string>',
repoAllowlist: ['<string>'],
workspaceRepos: [
{
baseUrl: '<string>',
currentSnapshot: '<string>',
fullUrl: '<string>',
repoName: '<string>'
}
]
})
};
fetch('https://mycluster.domino.tech/api/v4/ppm/search', 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://mycluster.domino.tech/api/v4/ppm/search",
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([
'constraints' => '<string>',
'biocVersion' => '<string>',
'forwardLookingSnapshotSearch' => false,
'minRVersion' => '<string>',
'repo' => '<string>',
'repoAllowlist' => [
'<string>'
],
'workspaceRepos' => [
[
'baseUrl' => '<string>',
'currentSnapshot' => '<string>',
'fullUrl' => '<string>',
'repoName' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-Api-Key: <api-key>"
],
]);
$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://mycluster.domino.tech/api/v4/ppm/search"
payload := strings.NewReader("{\n \"constraints\": \"<string>\",\n \"biocVersion\": \"<string>\",\n \"forwardLookingSnapshotSearch\": false,\n \"minRVersion\": \"<string>\",\n \"repo\": \"<string>\",\n \"repoAllowlist\": [\n \"<string>\"\n ],\n \"workspaceRepos\": [\n {\n \"baseUrl\": \"<string>\",\n \"currentSnapshot\": \"<string>\",\n \"fullUrl\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-Api-Key", "<api-key>")
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://mycluster.domino.tech/api/v4/ppm/search")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"constraints\": \"<string>\",\n \"biocVersion\": \"<string>\",\n \"forwardLookingSnapshotSearch\": false,\n \"minRVersion\": \"<string>\",\n \"repo\": \"<string>\",\n \"repoAllowlist\": [\n \"<string>\"\n ],\n \"workspaceRepos\": [\n {\n \"baseUrl\": \"<string>\",\n \"currentSnapshot\": \"<string>\",\n \"fullUrl\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/v4/ppm/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"constraints\": \"<string>\",\n \"biocVersion\": \"<string>\",\n \"forwardLookingSnapshotSearch\": false,\n \"minRVersion\": \"<string>\",\n \"repo\": \"<string>\",\n \"repoAllowlist\": [\n \"<string>\"\n ],\n \"workspaceRepos\": [\n {\n \"baseUrl\": \"<string>\",\n \"currentSnapshot\": \"<string>\",\n \"fullUrl\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"repos": [
{
"fullRepoUrl": "<string>",
"message": "<string>",
"repoName": "<string>",
"status": "Success"
}
],
"snapshots": [
{
"packages": [
"<string>"
],
"repo": "<string>",
"repoType": "R",
"snapshot": "<string>"
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}