Get a hydrated revision
curl --request GET \
--url https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/revisions/{revisionId}:hydrate \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/revisions/{revisionId}:hydrate"
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}/revisions/{revisionId}:hydrate', 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}/revisions/{revisionId}:hydrate",
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}/revisions/{revisionId}:hydrate"
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}/revisions/{revisionId}:hydrate")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/revisions/{revisionId}:hydrate")
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": "f0e1d2c3-b4a5-6789-0abc-def123456789",
"specVersion": "1.0.0",
"createTime": "2023-11-07T05:31:56Z",
"content": {
"name": "readSalesforceAccounts",
"provider": "salesforce",
"displayName": "Salesforce Accounts",
"module": "crm",
"read": {
"objects": [
{
"objectName": "account",
"displayName": "Account",
"destination": "accountWebhook",
"schedule": "*/10 * * * *",
"error": "<string>",
"mapToName": "accounts",
"mapToDisplayName": "Accounts",
"requiredFields": [
{
"fieldName": "billingcity",
"displayName": "Billing City",
"mapToName": "billing_city",
"mapToDisplayName": "Billing City"
}
],
"optionalFields": [
{
"fieldName": "billingcity",
"displayName": "Billing City",
"mapToName": "billing_city",
"mapToDisplayName": "Billing City"
}
],
"optionalFieldsAuto": "all",
"allFieldsMetadata": {
"name": {
"fieldName": "name",
"displayName": "Account Name",
"valueType": "string",
"providerType": "string",
"readOnly": false,
"isCustom": false,
"isRequired": true
},
"type": {
"fieldName": "type",
"displayName": "Account Type",
"valueType": "singleSelect",
"providerType": "picklist",
"readOnly": false,
"isCustom": false,
"isRequired": false,
"values": [
{
"value": "prospect",
"displayValue": "Prospect"
},
{
"value": "customer",
"displayValue": "Customer - Direct"
}
]
}
},
"allFields": [
{
"fieldName": "billingcity",
"displayName": "Billing City",
"mapToName": "billing_city",
"mapToDisplayName": "Billing City"
}
],
"backfill": {
"defaultPeriod": {
"days": 30,
"fullHistory": false
}
}
}
]
},
"write": {
"objects": [
{
"objectName": "account",
"displayName": "Account",
"valueDefaults": {
"allowAnyFields": true
}
}
]
},
"proxy": {
"enabled": true,
"useModule": true
}
}
}{
"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"
}Revision
Get a hydrated revision
Returns the integration revision enriched with live field metadata from the consumer’s connected SaaS instance, such as available fields, display names, and type for each object defined in the integration.
GET
/
projects
/
{projectIdOrName}
/
integrations
/
{integrationId}
/
revisions
/
{revisionId}
:hydrate
Get a hydrated revision
curl --request GET \
--url https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/revisions/{revisionId}:hydrate \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/revisions/{revisionId}:hydrate"
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}/revisions/{revisionId}:hydrate', 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}/revisions/{revisionId}:hydrate",
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}/revisions/{revisionId}:hydrate"
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}/revisions/{revisionId}:hydrate")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withampersand.com/v1/projects/{projectIdOrName}/integrations/{integrationId}/revisions/{revisionId}:hydrate")
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": "f0e1d2c3-b4a5-6789-0abc-def123456789",
"specVersion": "1.0.0",
"createTime": "2023-11-07T05:31:56Z",
"content": {
"name": "readSalesforceAccounts",
"provider": "salesforce",
"displayName": "Salesforce Accounts",
"module": "crm",
"read": {
"objects": [
{
"objectName": "account",
"displayName": "Account",
"destination": "accountWebhook",
"schedule": "*/10 * * * *",
"error": "<string>",
"mapToName": "accounts",
"mapToDisplayName": "Accounts",
"requiredFields": [
{
"fieldName": "billingcity",
"displayName": "Billing City",
"mapToName": "billing_city",
"mapToDisplayName": "Billing City"
}
],
"optionalFields": [
{
"fieldName": "billingcity",
"displayName": "Billing City",
"mapToName": "billing_city",
"mapToDisplayName": "Billing City"
}
],
"optionalFieldsAuto": "all",
"allFieldsMetadata": {
"name": {
"fieldName": "name",
"displayName": "Account Name",
"valueType": "string",
"providerType": "string",
"readOnly": false,
"isCustom": false,
"isRequired": true
},
"type": {
"fieldName": "type",
"displayName": "Account Type",
"valueType": "singleSelect",
"providerType": "picklist",
"readOnly": false,
"isCustom": false,
"isRequired": false,
"values": [
{
"value": "prospect",
"displayValue": "Prospect"
},
{
"value": "customer",
"displayValue": "Customer - Direct"
}
]
}
},
"allFields": [
{
"fieldName": "billingcity",
"displayName": "Billing City",
"mapToName": "billing_city",
"mapToDisplayName": "Billing City"
}
],
"backfill": {
"defaultPeriod": {
"days": 30,
"fullHistory": false
}
}
}
]
},
"write": {
"objects": [
{
"objectName": "account",
"displayName": "Account",
"valueDefaults": {
"allowAnyFields": true
}
}
]
},
"proxy": {
"enabled": true,
"useModule": true
}
}
}{
"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
APIKeyHeaderBearer
Path Parameters
The Ampersand project ID or project name.
The integration ID.
The revision ID. You can find this on the integration object's latestRevision.id field.
Query Parameters
The ID of the consumer's connection to the SaaS provider. This connection's credentials are used to fetch field metadata from the provider's API.
Response
Hydrated revision.
Was this page helpful?
⌘I

