Skip to main content
GET
/
projects
/
{projectIdOrName}
/
integrations
/
{integrationId}
/
installations
List installations for an integration
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

X-Api-Key
string
header
required

Path Parameters

projectIdOrName
string
required

The Ampersand project ID or project name.

integrationId
string
required

The unique identifier (UUID) of the integration.

Query Parameters

groupRef
string

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

id
string
required

The installation ID.

projectId
string
required

The Ampersand project ID.

Example:

"project-456"

integrationId
string
required

The integration ID.

healthStatus
enum<string>
required

The health status of the installation.

Available options:
healthy,
unhealthy
Example:

"healthy"

connection
Connection · object
required
createTime
string<date-time>
required

The time the installation was created.

createdBy
string
required

The person who did the installation, in the format of "consumer:{consumer-id}".

Example:

"consumer:consumer-123"

config
Config · object
required
group
Group · object
lastOperationStatus
enum<string>

The status of the latest operation for this installation.

Available options:
success,
failure,
in_progress
Example:

"success"

updateTime
string<date-time>

The time the installation was last updated with a new config.