curl --request GET \
--url https://app.trelica.com/api/apps/v1/{appId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.trelica.com/api/apps/v1/{appId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.trelica.com/api/apps/v1/{appId}', 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://app.trelica.com/api/apps/v1/{appId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.trelica.com/api/apps/v1/{appId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.trelica.com/api/apps/v1/{appId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trelica.com/api/apps/v1/{appId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "9425963fcd38ed972d209b49",
"name": "Asana",
"status": "New",
"riskLevel": "High",
"vendor": {
"id": "f7f213984a1a225358c21c71",
"name": "Asana, Inc."
},
"licenses": [
{
"name": "Premium",
"licensePlanId": "PREMIUM",
"startDate": "2024-07-22T00:00:00Z",
"renewalDate": "2025-07-22T00:00:00Z",
"terminatedDate": "2025-10-22T00:00:00Z",
"lastModifiedDtm": "2024-11-27T16:00:20.895Z"
},
{
"name": "Business",
"licensePlanId": "BUSINESS",
"startDate": "2021-06-22T00:00:00Z",
"renewalDate": "2022-06-22T00:00:00Z",
"lastModifiedDtm": "2023-05-15T12:28:57.137Z"
}
],
"customFields": {
"user_area": "support",
"user_vcc": "corp_support"
},
"deleted": false,
"roles": [
{
"name": "IT admin",
"members": [
{
"userId": "20fcf665630fc6562182578cb7f19f1e",
"name": "Eduardo Wilson",
"email": "eduardo.wilson@example.com"
}
]
},
{
"name": "App owner",
"members": [
{
"userId": "0372c6f6fc51bc128389337de1146143",
"name": "Eduardo Jung",
"email": "eduardo.jung@example.com"
}
]
}
],
"isGlobal": false,
"mainCategory": {
"id": "03823a9d2e817efcce22f52e",
"name": "Project Management"
},
"otherCategories": [
{
"id": "cab66910ac7cc93acdcc0338",
"name": "Project Management & Tracking"
},
{
"id": "22d0532b27e33b61e53a6fc5",
"name": "Team Coordination & Comms"
},
{
"id": "74e38311e5ad68ef2ab9dbb2",
"name": "Task Management"
}
],
"logoUrl": "https://app-files.trelica.com/public/4ad42e9e68cf46e3bc59cb8eab35886c",
"links": {
"application": "https://app.asana.com/"
}
}{
"type": "about:blank",
"title": "One or more validation errors occurred.",
"status": 400,
"detail": "The request body failed validation. See errors for the offending fields.",
"errors": {
"email": [
"The email field is required."
]
},
"traceId": "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"
}{
"type": "about:blank",
"title": "Not found.",
"status": 404,
"detail": "The requested resource does not exist or you do not have access to it.",
"traceId": "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"
}Get an application
Fetches a single application (a managed SaaS app in your organization) by its ID.
Required scope: Apps.Read (Read-only access to applications)
curl --request GET \
--url https://app.trelica.com/api/apps/v1/{appId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.trelica.com/api/apps/v1/{appId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.trelica.com/api/apps/v1/{appId}', 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://app.trelica.com/api/apps/v1/{appId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.trelica.com/api/apps/v1/{appId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.trelica.com/api/apps/v1/{appId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trelica.com/api/apps/v1/{appId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "9425963fcd38ed972d209b49",
"name": "Asana",
"status": "New",
"riskLevel": "High",
"vendor": {
"id": "f7f213984a1a225358c21c71",
"name": "Asana, Inc."
},
"licenses": [
{
"name": "Premium",
"licensePlanId": "PREMIUM",
"startDate": "2024-07-22T00:00:00Z",
"renewalDate": "2025-07-22T00:00:00Z",
"terminatedDate": "2025-10-22T00:00:00Z",
"lastModifiedDtm": "2024-11-27T16:00:20.895Z"
},
{
"name": "Business",
"licensePlanId": "BUSINESS",
"startDate": "2021-06-22T00:00:00Z",
"renewalDate": "2022-06-22T00:00:00Z",
"lastModifiedDtm": "2023-05-15T12:28:57.137Z"
}
],
"customFields": {
"user_area": "support",
"user_vcc": "corp_support"
},
"deleted": false,
"roles": [
{
"name": "IT admin",
"members": [
{
"userId": "20fcf665630fc6562182578cb7f19f1e",
"name": "Eduardo Wilson",
"email": "eduardo.wilson@example.com"
}
]
},
{
"name": "App owner",
"members": [
{
"userId": "0372c6f6fc51bc128389337de1146143",
"name": "Eduardo Jung",
"email": "eduardo.jung@example.com"
}
]
}
],
"isGlobal": false,
"mainCategory": {
"id": "03823a9d2e817efcce22f52e",
"name": "Project Management"
},
"otherCategories": [
{
"id": "cab66910ac7cc93acdcc0338",
"name": "Project Management & Tracking"
},
{
"id": "22d0532b27e33b61e53a6fc5",
"name": "Team Coordination & Comms"
},
{
"id": "74e38311e5ad68ef2ab9dbb2",
"name": "Task Management"
}
],
"logoUrl": "https://app-files.trelica.com/public/4ad42e9e68cf46e3bc59cb8eab35886c",
"links": {
"application": "https://app.asana.com/"
}
}{
"type": "about:blank",
"title": "One or more validation errors occurred.",
"status": 400,
"detail": "The request body failed validation. See errors for the offending fields.",
"errors": {
"email": [
"The email field is required."
]
},
"traceId": "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"
}{
"type": "about:blank",
"title": "Not found.",
"status": 404,
"detail": "The requested resource does not exist or you do not have access to it.",
"traceId": "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"
}Authorizations
OAuth 2.0. Obtain an access token via the Client Credentials or Authorization Code flow, then send it as Authorization: Bearer <token>.
Path Parameters
The application's SaaS Manager ID.
Response
OK
An application
The application's unique ID
The application name
A description of the application
The instance name, used to distinguish multiple instances of the same application
The application's status in SaaS Manager.
New, InReview, Managed, Accepted, Ignored, PlanToClose, Closed Optional OAuth access risk level: Low, Medium or High
The application's vendor
Show child attributes
Show child attributes
The application's license plans
Show child attributes
Show child attributes
Custom field values, keyed by the field's lookup key. Each value is the field's value directly: a string (text/single-select), a number, an ISO-8601 date, or an array of strings (multi-select).
Show child attributes
Show child attributes
The user that created the application record
Show child attributes
Show child attributes
The timestamp for when the application record was created
Whether the application has been deleted
The timestamp for when the application record was last modified
The application's owner roles and their members
Show child attributes
Show child attributes
Whether the application is recognised in the global application catalog
The application's primary category
Show child attributes
Show child attributes
The application's additional categories
Show child attributes
Show child attributes
The application's domains
A URL for the application's logo
The application's single sign-on URL
Links to pages containing application details
Show child attributes
Show child attributes
Related topics
Get application categoriesGet started with a 1Password Connect serverList applicationsWas this page helpful?