curl --request GET \
--url https://api.withampersand.com/v1/projects/{projectIdOrName}/providers/{provider}/objects/{objectName}/metadata \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.withampersand.com/v1/projects/{projectIdOrName}/providers/{provider}/objects/{objectName}/metadata"
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}/providers/{provider}/objects/{objectName}/metadata', 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}/providers/{provider}/objects/{objectName}/metadata",
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}/providers/{provider}/objects/{objectName}/metadata"
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}/providers/{provider}/objects/{objectName}/metadata")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withampersand.com/v1/projects/{projectIdOrName}/providers/{provider}/objects/{objectName}/metadata")
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{
"name": "contact",
"displayName": "Contact",
"fields": {
"firstname": {
"fieldName": "firstname",
"displayName": "First Name",
"valueType": "string",
"providerType": "string",
"readOnly": false,
"isCustom": false,
"isRequired": true
},
"email": {
"fieldName": "email",
"displayName": "Email",
"valueType": "string",
"providerType": "string",
"readOnly": false,
"isCustom": false,
"isRequired": false
},
"lifecyclestage": {
"fieldName": "lifecyclestage",
"displayName": "Lifecycle Stage",
"valueType": "singleSelect",
"providerType": "enumeration",
"readOnly": false,
"isCustom": false,
"isRequired": false,
"values": [
{
"value": "lead",
"displayValue": "Lead"
},
{
"value": "customer",
"displayValue": "Customer"
}
]
}
}
}{
"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"
}Get object metadata via connection
Retrieves metadata about an object in a customer’s SaaS instance, including its fields. A connection must exist for the given groupRef and provider. For Salesforce, nested fields may be included using JSONPath bracket notation (e.g. $['billingaddress']['city']).
curl --request GET \
--url https://api.withampersand.com/v1/projects/{projectIdOrName}/providers/{provider}/objects/{objectName}/metadata \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.withampersand.com/v1/projects/{projectIdOrName}/providers/{provider}/objects/{objectName}/metadata"
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}/providers/{provider}/objects/{objectName}/metadata', 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}/providers/{provider}/objects/{objectName}/metadata",
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}/providers/{provider}/objects/{objectName}/metadata"
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}/providers/{provider}/objects/{objectName}/metadata")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withampersand.com/v1/projects/{projectIdOrName}/providers/{provider}/objects/{objectName}/metadata")
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{
"name": "contact",
"displayName": "Contact",
"fields": {
"firstname": {
"fieldName": "firstname",
"displayName": "First Name",
"valueType": "string",
"providerType": "string",
"readOnly": false,
"isCustom": false,
"isRequired": true
},
"email": {
"fieldName": "email",
"displayName": "Email",
"valueType": "string",
"providerType": "string",
"readOnly": false,
"isCustom": false,
"isRequired": false
},
"lifecyclestage": {
"fieldName": "lifecyclestage",
"displayName": "Lifecycle Stage",
"valueType": "singleSelect",
"providerType": "enumeration",
"readOnly": false,
"isCustom": false,
"isRequired": false,
"values": [
{
"value": "lead",
"displayValue": "Lead"
},
{
"value": "customer",
"displayValue": "Customer"
}
]
}
}
}{
"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 provider name (e.g. salesforce, hubspot).
The native provider object name to retrieve metadata for.
Query Parameters
The ID of the user group whose connection should be used to fetch the metadata.
Excludes fields where ReadOnly is true from the response.
Response
The retrieved object metadata.
The provider name of the object
"contact"
Map of field metadata keyed by field name
Show child attributes
Show child attributes
Human-readable name of the object
"Contact"
The mapped name of the object as defined in your integration config, if a mapping was applied. Only present when using the installation-scoped metadata endpoint.
"people"
Was this page helpful?

