curl --request GET \
--url https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations', 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.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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"
"net/http"
"io"
)
func main() {
url := "https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "3f8b2a1e-7c4d-4e9a-b5f6-1d2e3a4b5c6d",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"integrationId": "550e8400-e29b-41d4-a716-446655440000",
"group": {
"groupRef": "org_12345",
"groupName": "Acme Corp",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"createTime": "2024-01-15T10:30:00.000000Z"
},
"healthStatus": "healthy",
"connection": {
"id": "9d8c7b6a-5e4f-3a2b-1c0d-ef9876543210",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"provider": "salesforce",
"group": {
"groupRef": "org_12345",
"groupName": "Acme Corp",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"createTime": "2024-01-15T10:30:00.000000Z"
},
"consumer": {
"consumerRef": "user_67890",
"consumerName": "Jane Smith",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"createTime": "2024-01-15T10:30:00.000000Z"
},
"createTime": "2024-01-15T10:30:00.000000Z",
"authScheme": "oauth2/authorizationCode",
"status": "working"
},
"createTime": "2024-01-15T10:30:00.000000Z",
"createdBy": "consumer:user_67890",
"config": {
"id": "e4d3c2b1-a098-7654-3210-fedcba987654",
"revisionId": "f0e1d2c3-b4a5-6789-0abc-def123456789",
"createTime": "2024-01-15T10:30:00.000000Z",
"createdBy": "consumer:user_67890",
"content": {
"provider": "salesforce",
"read": {
"objects": {
"account": {
"objectName": "account",
"schedule": "*/15 * * * *",
"destination": "accountWebhook",
"selectedFields": {
"name": true,
"industry": true
}
}
}
}
}
}
}
]{
"type": "about:blank",
"href": "https://www.belgif.be/specification/rest/api-guide/#standardized-problem-types",
"title": "Bad Request",
"status": 400,
"detail": "The input message is incorrect",
"instance": "123456-1234-1235-4567489798",
"issues": [
{
"type": "about:blank",
"detail": "exampleNumericProperty should be numeric",
"in": "path",
"name": "exampleNumericProperty",
"value": "abc"
},
{
"type": "about:blank",
"title": "Input isn't valid with respect to schema",
"detail": "examplePropertyWithPattern a2345678901 doesn't match pattern '^\\d{11}$'",
"in": "body",
"name": "items[0].examplePropertyWithPattern",
"value": "a2345678901"
}
]
}{
"type": "urn:problem-type:exampleOrganization:exampleProblem",
"href": "https://www.belgif.be/specification/rest/api-guide/#standardized-problem-types",
"title": "Description of the type of problem that occurred",
"status": 400,
"detail": "Description of specific occurrence of the problem",
"instance": "urn:uuid:123e4567-e89b-12d3-a456-426614174000"
}List installations for an integration
Lists all installations for a specific integration within a project. To list installations across all integrations, use listInstallationsForProject instead.
curl --request GET \
--url https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations', 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.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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"
"net/http"
"io"
)
func main() {
url := "https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/installations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "3f8b2a1e-7c4d-4e9a-b5f6-1d2e3a4b5c6d",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"integrationId": "550e8400-e29b-41d4-a716-446655440000",
"group": {
"groupRef": "org_12345",
"groupName": "Acme Corp",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"createTime": "2024-01-15T10:30:00.000000Z"
},
"healthStatus": "healthy",
"connection": {
"id": "9d8c7b6a-5e4f-3a2b-1c0d-ef9876543210",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"provider": "salesforce",
"group": {
"groupRef": "org_12345",
"groupName": "Acme Corp",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"createTime": "2024-01-15T10:30:00.000000Z"
},
"consumer": {
"consumerRef": "user_67890",
"consumerName": "Jane Smith",
"projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"createTime": "2024-01-15T10:30:00.000000Z"
},
"createTime": "2024-01-15T10:30:00.000000Z",
"authScheme": "oauth2/authorizationCode",
"status": "working"
},
"createTime": "2024-01-15T10:30:00.000000Z",
"createdBy": "consumer:user_67890",
"config": {
"id": "e4d3c2b1-a098-7654-3210-fedcba987654",
"revisionId": "f0e1d2c3-b4a5-6789-0abc-def123456789",
"createTime": "2024-01-15T10:30:00.000000Z",
"createdBy": "consumer:user_67890",
"content": {
"provider": "salesforce",
"read": {
"objects": {
"account": {
"objectName": "account",
"schedule": "*/15 * * * *",
"destination": "accountWebhook",
"selectedFields": {
"name": true,
"industry": true
}
}
}
}
}
}
}
]{
"type": "about:blank",
"href": "https://www.belgif.be/specification/rest/api-guide/#standardized-problem-types",
"title": "Bad Request",
"status": 400,
"detail": "The input message is incorrect",
"instance": "123456-1234-1235-4567489798",
"issues": [
{
"type": "about:blank",
"detail": "exampleNumericProperty should be numeric",
"in": "path",
"name": "exampleNumericProperty",
"value": "abc"
},
{
"type": "about:blank",
"title": "Input isn't valid with respect to schema",
"detail": "examplePropertyWithPattern a2345678901 doesn't match pattern '^\\d{11}$'",
"in": "body",
"name": "items[0].examplePropertyWithPattern",
"value": "a2345678901"
}
]
}{
"type": "urn:problem-type:exampleOrganization:exampleProblem",
"href": "https://www.belgif.be/specification/rest/api-guide/#standardized-problem-types",
"title": "Description of the type of problem that occurred",
"status": 400,
"detail": "Description of specific occurrence of the problem",
"instance": "urn:uuid:123e4567-e89b-12d3-a456-426614174000"
}Authorizations
Path Parameters
The Ampersand project ID or project name.
The unique identifier (UUID) of the integration.
Query Parameters
The ID that your app uses to identify a group of users (e.g. an org ID, workspace ID, or team ID). When provided, only returns installations belonging to this group.
Response
List of installations
The installation ID.
The Ampersand project ID.
"project-456"
The integration ID.
The health status of the installation.
healthy, unhealthy "healthy"
Show child attributes
Show child attributes
The time the installation was created.
The person who did the installation, in the format of "consumer:{consumer-id}".
"consumer:consumer-123"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The status of the latest operation for this installation.
success, failure, in_progress "success"
The time the installation was last updated with a new config.
Was this page helpful?

