For the complete documentation index, see llms.txt. This page is also available as Markdown.

Library

The public API groups PBR assets by project. Follow pagination.next_cursor for more pages and inspect ungrouped_assets after the project groups. Filter the returned name field in your client to search. GET /assets returns each group with its group_id, name, and assets.

Search by name

curl -sS "$MARSO_API_BASE_URL/assets?limit=25" \
  -H "Authorization: Bearer $MARSO_API_KEY" | jq '.data[].assets[] | select(.name | test("chair"; "i"))'
groups = requests.get(f"{base}/assets?limit=25", headers=headers, timeout=30).json()["data"]
assets = [asset for group in groups for asset in group["assets"]]
matches = [asset for asset in assets if "chair" in asset["name"].lower()]
print(matches)
req, _ := http.NewRequest(http.MethodGet, base+"/assets?limit=25", nil)
req.Header.Set("Authorization", "Bearer "+key)

List projects

curl -sS "$MARSO_API_BASE_URL/assets?limit=25" \
  -H "Authorization: Bearer $MARSO_API_KEY" | jq '.data[] | {id: .group_id, name, assets: (.assets | length)}'
projects = requests.get(f"{base}/assets?limit=25", headers=headers, timeout=30).json()["data"]
print(projects)
req, _ := http.NewRequest(http.MethodGet, base+"/assets?limit=25", nil)
req.Header.Set("Authorization", "Bearer "+key)

List assets in a project

curl -sS "$MARSO_API_BASE_URL/assets?limit=25" \
  -H "Authorization: Bearer $MARSO_API_KEY" | jq '.data[] | select(.group_id == "<project-id>") | .assets'
response = requests.get(f"{base}/assets", headers=headers, params={"limit": 25}, timeout=30).json()
assets = next(group["assets"] for group in response["data"] if group["group_id"] == "<project-id>")
print(assets)
req, _ := http.NewRequest(http.MethodGet, base+"/assets?limit=25", nil)
req.Header.Set("Authorization", "Bearer "+key)

Last updated