Complete API Guide
Complete API Guide
API
GUIDE
CONTENTS
Chapter 4: Generating an OpenAPI 3.0 Document for sObjects REST API (Beta).....117
Request Bodies.................................................322
Response Bodies................................................323
Search for Records Suggested by Autocomplete and Instant Results..................325
Search Suggested Article Title Matches.....................................330
Search Suggested Queries.............................................333
Salesforce Surveys Translation Resources...................................335
Add or Change the Translation of a Survey Field............................336
Add or Update the Translated Value of Multiple Survey Fields in One or More
Languages....................................................337
Delete the Translated Value of a Survey Field..............................338
Delete the Translated Value of Multiple Survey Fields in One or More Languages.....339
Get Translated Value of a Survey Field..................................340
Get the Translated Values of Multiple Survey Fields in One or More Languages.......341
Tabs............................................................343
Retrieve Tabs...................................................343
Return Headers Using Tabs.........................................345
Themes..........................................................345
Composite........................................................348
Send Multiple Requests Using Composite................................348
Retrieve a List of Composite Resources..................................362
Composite Graph...................................................363
Composite Subrequest.............................................367
Composite Graph Limits............................................370
Composite Batch....................................................371
Batch Request Body...............................................372
Batch Response Body.............................................374
sObject Tree.......................................................376
sObject Tree Request Body..........................................377
sObject Tree Response Body.........................................380
sObject Collections...................................................381
Create Records Using sObject Collections................................382
Get Records Using sObject Collections..................................384
Get Records with a Request Body Using sObject Collections....................385
Update Records Using sObject Collections...............................387
Upsert Records Using sObject Collections................................390
Delete Records Using sObject Collections................................393
CHAPTER 1 Introduction to REST API
In this chapter ... REST API provides you with programmatic access to your data in Salesforce. The flexibility and scalability
of REST API make it an excellent choice for integrating Salesforce into your applications and for
•What Is REST API? performing complex operations on a large scale.
•API Compatible
Use this guide to set up your deployment environment and learn about advanced details regarding data
Editions and
access. However, understanding and using REST API requires basic familiarity with software
development,
Development
Environments web services, and the Salesforce user interface.
•REST Resources and If you want to get right to the action, the Quick Start guide covers the basics to get you up and running.
Requests
If you’re looking for more context about Salesforce APIs, check out the list of links.
•REST API Architecture
• Authorization Tip: Salesforce REST API is designed to work with Salesforce objects. See the Object Reference for
Through Connected the Salesforce Platform for an introduction and more information about Salesforce objects.
Apps and OAuth 2.0
• Headers SEE ALSO:
•Send REST Requests Trailhead: Lightning Platform API Basics
with cURL
Which API Do I Use?
•Configure Salesforce
CORS Allowlist
•Valid Date and
DateTime Formats
•Status Codes and
Error Responses
•API End-of-Life
1
Introduction to REST API What Is REST API?
SEE ALSO:
REST Resources and Requests
REST API Architecture
Which API Do I Use?
API Access
API access is available with Professional Edition, Performance Edition, Enterprise Edition, Unlimited Edition, and Developer Edition. For
Professional Edition, all requests for API access must be purchased and can be processed by contacting your Account Executive.
Note: If you send an API request to an org without API access, Salesforce returns a
API_DISABLED_FOR_ORG error.
To protect your live data, we recommend performing all development and testing in Developer Edition, sandboxes, or scratch orgs. This
way you create a separate environment to try out things before implementing the changes.
SEE ALSO:
Get your very own Developer Edition
Scratch Orgs
Sandboxes
Salesforce DX Developer Guide
2
Introduction to REST API REST Resources and Requests
URIs
The URI is the path to a resource in Salesforce. Although the URI changes from resource to resource, the basic structure remains the
same.
https://MyDomainName.my.salesforce.com/services/data/vXX.X/resource/
Use
https:// to securely access resources.
Replace MyDomainName with the subdomain of your Salesforce org. Salesforce runs on multiple server instances, so the examples
in this guide use MyDomainName in place of a specific instance.
Replace XX.X with the version of the API that you want to use. You can find a list of available versions by accessing the Versions on
page 131 resource.
Replace resource with the rest of the path to the resource. Depending on the resource, the path can contain parameters, such as
IDs to identify a specific record. You can find the URIs for different resources in the Reference section of this guide.
sObject resources access standard and custom objects in Salesforce. For information about objects, see Object Reference for the Salesforce
Platform.
Note: Some parts of URIs are case-sensitive, such as IDs. Other parts of URIs aren't case-sensitive, such as object and field names.
If your requests aren't successful, check that your URI has the right letter cases by comparing the URI to the examples in this guide.
HTTP Methods
REST API supports standard HTTP request methods (HEAD, GET, POST, PATCH, PUT, and DELETE), which follow the specifications at
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html.
3
Introduction to REST API REST API Architecture
The purpose of each method varies depending on the resource. For information on how and when to use each method, check the page
for that resource in the Reference section of this guide.
Headers
Use headers to pass parameters and customize options for HTTP requests. REST API supports several standard HTTP headers, as well as
custom headers that are specific to Salesforce.
Common headers used in the examples include:
•HTTP Accept—Indicates the format that your client accepts for the response body. Possible values are
application/json
and
application/xml. The default value is application/json.
•HTTP Content-type—Indicates the format of the request body that you attach to the request. Possible values are
application/json and application/xml.
•HTTP Authorization—Provides the OAuth 2.0 access token to authorize your client. REST API supports the Bearer authentication
type.
•Compression header—Compresses the request or the response. For more information, see Compression Headers on page 8.
•Conditional request header—Validates the records that you access against a precondition. For more information, see Conditional
Request Headers on page 9.
Request Bodies
A request body is a rich input that can be included in the request to provide additional information, such as field values for creating or
updating records. A request body can be in JSON or XML format.
Note: Resources accessed with the GET method don’t require you to attach a request body.
Use the HTTP Content-type header to indicate the file format of the request body. If you use cURL to send the request, attach the JSON
or XML file to the request
—data-binary orusing
-d the
option.
SEE ALSO:
Send REST Requests with cURL
Setting Up Your Java Developer Environment
4
Introduction to REST API REST API Architecture
Named resources
All resources are named using a base URI that follows your Lightning Platform endpoint. See REST Resources and Requests for details
and examples.
Layered components
Intermediaries, such as proxy servers and gateways, are allowed between the client and the resources.
In addition to the standard RESTful principles, REST API includes other key characteristics in its architecture that are important to understand
and consider as you develop your applications.
Authentication
REST API supports OAuth 2.0 (an open protocol to allow secure API authorization). See Authorize Apps with OAuth inSalesforce Help
for more details.
Support for JSON and XML
JSON is the default. You can use the HTTPACCEPT header to select either JSON or XML, or append json or xml to the URI
(for example,
/Account/001D000000INjVe.json).
The JavaScript Object Notation (JSON) format is supported with UTF-8.
XML requests are supported in UTF-8 and UTF-16, and XML responses are provided in UTF-8.
Compression
Compression reduces bandwidth loads by compressing the messages sent between REST API and your client. REST API supports
compression with gzip and deflate, as defined by the HTTP 1.1 specification. See Compression Headers.
Conditional Requests
Response caching is supported by conditional request headers that follow the standards defined by the HTTP 1.1 specification, with a
few exceptions. See Conditional Request Headers.
Cross-Origin Resource Sharing
Cross-Origin Resource Sharing (CORS) enables web browsers to request resources from origins other than their own. For example,
using CORS, JavaScript code at https://www.example.com could request a resource from https://www.salesforce.com. To access
supported Salesforce APIs, Apex REST resources, and Lightning Out from JavaScript code in a web browser, add the origin serving the
code to a Salesforce CORS allowlist. See Perform Cross-Origin Requests from Web Browsers.
Salesforce ID Length
Salesforce IDs in response bodies are always 18-character IDs. In request bodies, you can use either 15 character IDs or 18 character
IDs.
Method Overriding
To override an HTTP method if you use an HTTP library that doesn’t allow overriding or setting an arbitrary HTTP method name, use
the request parameter
_HttpMethod.
POSThttps:// instance_name
/services/data/v57.0/chatter/
/chatter/users/me/conversations/03MD0000000008KMAQ
?_HttpMethod=PATCH&read=true
Note: The _HttpMethod parameter is case-sensitive. Use the correct case for all values.
HTTPS
All communication between client and server is over HTTPS.
5
Introduction to REST API Authorization Through Connected Apps and OAuth 2.0
More Resources
Salesforce offers the following resources to help you navigate connected apps and OAuth:
•Salesforce Help: Connected Apps
•Salesforce Help: Authorize Apps with OAuth
•Salesforce Help: OpenID Connect Token Introspection
•Trailhead: Build Integrations Using Connected Apps
Headers
REST API supports several standard and custom HTTP headers, including both request headers and response headers.
IN THIS SECTION:
Assignment Rule Header
The Assignment Rule header is a request header applied when creating or updating Accounts, Cases, or Leads. If enabled, the active
assignment rules are used. If disabled, the active assignment rules are not applied. If a valid AssignmentRule ID is provided, the
AssignmentRule is applied. If the header is not provided with a request, REST API defaults to using the active assignment rules.
Call Options Header
Specifies options for the client you’re using to access REST API resources. For example, you can provide a default namespace prefix
so that you don’t need to specify the prefix in your code.
6
Introduction to REST API Assignment Rule Header
Compression Headers
Use a compression header to compress a REST API request or response. Compression reduces the bandwidth required for a request,
although it requires more processing power at your client. In most cases, this tradeoff benefits the overall performance of your
application.
Conditional Request Headers
Use a conditional request header to validate resources before accessing them. By setting a precondition in the header, you ensure
that your request succeeds only if that precondition is met. This functionality helps you prevent mistakes and reject outdated requests
when updating Salesforce data. You can implement a variety of techniques with conditional request headers, such as response
caching.
Duplicate Rule Header
Configure options for duplicate rules. Salesforce uses duplicate rules to see if the record that is being created, updated, or upserted
is a duplicate of an existing record. Duplicate rules are part of Duplicate Management.
Limit Info Header
This response header is returned in each request to REST API. You can use the information to monitor API limits.
Package Version Header
Specifies the version of each package referenced by a client. A package version is a number that identifies the set of components
and behavior contained in a package.This header can also be used to specify a package version when making calls to an Apex REST
web service.
Query Options Header
Specifies options used in a query, such as the query results batch size. Use this request header with the Query resource.
Warning Header
This header is returned if there are warnings, such as the use of a deprecated version of the API.
7
Introduction to REST API Call Options Header
Example
Sforce-Auto-Assign: FALSE
Example
If the developer namespace prefix is battle, and you have a custom field called botId in a package, set the default namespace
with the call options header:
/services/data/vXX.X/query/?q=SELECT+Id+botID__c+FROM+Account
Use a compression header to compress a REST API request or response. Compression reduces the bandwidth required for a request,
although it requires more processing power at your client. In most cases, this tradeoff benefits the overall performance of your application.
REST API supports the gzip and deflate compression algorithms, as defined by the HTTP 1.1 specification. If you’re unsure about which
one to use, gzip is more common than deflate.
8
Introduction to REST API Conditional Request Headers
Tip: For better performance, we suggest that clients accept and support compression as defined by the HTTP 1.1 specification.
Request Compression
IncludeContent-Encoding:gzip
a or Content-Encoding: deflate header to compress a request. REST API
decompresses any requests before processing.
This example request is compressed with gzip.
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/sobjects/Account/-H
access-token
"Authorization:Bearer "-H"Content-Type:application/json"-H
"Content-Encoding: gzip" —data-binary @new-account.json -X POST
Response Compression
Salesforce compresses a response only
Accept-Encoding:gzip or ifAccept-Encoding:
the request contains an
deflate header. REST API isn’t required to compress the response even if you’ve specified Accept-Encoding, but it normally does. If
compressed, the response contains a Content-Encoding header with the compression algorithm so that your client knows to decompress
it.
This example request asks for a compressed response.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/0015e000009sS0DAAU
-H "Authorization: Bearer access-token" -H "Content-Type: application/json" -H
"Accept-Encoding: gzip" -X GET
precondition
exactly matches the resource in Salesforce. Strong validation headers include If-Match and If-None-Match, which use entity
tags (ETags) to compare the precondition to the record in Salesforce.
Weak validation checks a precondition against the resource in Salesforce, but it doesn’t guarantee that the two are identical. Weak
validation headers include
If-Modified-Since or If-Unmodified-Since, which compare the precondition to the last
modified date of the record in Salesforce.
REST API conditional headers follow the HTTP 1.1 specification with the following exceptions.
•When you include an invalid header value for
If-Match, If-None-Match, or If-Unmodified-Since on a PATCH or
POST request, a
400BadRequest status code is returned.
ETag
•The
The
If-Range header
ETag header is a isn’t supported.
response header that’s returned when you access the sObject Rows resource. It’s a hash of the content that’s
•DELETE requests
used by the aren’t supported
If-Match and If-None-Match request headers in subsequent requests to determine if the content has changed.
9
Introduction to REST API Conditional Request Headers
You can find the HTTP 1.1 specification for the ETag header at www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19 .
If-Match
The If-Match header is a request header for sObject Rows that includes a list of ETags. If the ETag of the record that you’re requesting
matches an ETag specified as a precondition in the header, the request is processed. Otherwise, a 412 Precondition Failed status code
is returned, and the request isn’t processed.
This header supports sObject Rows (Account records only) resources.
In this example an,
If-Match header is included with a request.
If-Match: "Jbjuzw7dbhaEG3fd90kJbx6A0ow=-gzip", "U5iWijwWbQD18jeiXwsqxeGpZQk=-gzip"
You can find the HTTP 1.1 specification for the If-Match header at www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24 .
If-None-Match
The If-None-Match header is a request header for sObject Rows that’s the inverse of If-Match. If the ETag of the record that
you’re requesting matches an ETag specified in the header, the request isn’t processed. A 304 Not Modified status code is returned for
GET or HEAD requests, and a 412 Precondition Failed status code is returned for PATCH requests.
This header supports sObject Rows (Account records only) resources.
In this example, an
If-None-Match header is included with a request.
If-None-Match: "Jbjuzw7dbhaEG3fd90kJbx6A0ow=-gzip", "U5iWijwWbQD18jeiXwsqxeGpZQk=-gzip"
You can find the HTTP 1.1 specification for If-None-Match header at www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26
the .
If-Modified-Since
The If-Modified-Since header is a time-based request header. The request is processed only if the data has changed since the
date and time specified in the header. Otherwise, a 304 Not Modified status code is returned, and the request isn’t processed.
This header supports sObject Rows, sObject Describe, Describe Global, and Invocable Actions resources.
In this example an
If-Modified-Since header is included with a request.
If-Modified-Since: Tue, 10 Aug 2015 00:00:00 GMT
You can find the HTTP 1.1 specification for the If-Modified-Since header at
www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25 .
If-Unmodified-Since
The If-Unmodified-Since header is a request header that’s the inverse of If-Modified-Since. If you make a request
and include the If-Unmodified-Since header, REST API processes the request only if the data hasn’t changed since the specified date.
Otherwise, a 412 Precondition Failed status code is returned, and the request isn’t processed.
10
Introduction to REST API Duplicate Rule Header
This header supports sObject Rows, sObject Describe, Describe Global, and Invocable Actions resources.
In this example, an
If-Unmodified-Since header is included in a request.
If-Unmodified-Since: Tue, 10 Aug 2015 00:00:00 GMT
You can find the HTTP 1.1 specification for the If-Unmodified-Since header at
www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28 .
Sforce-Duplicate-Rule-Header: allowSave=true,
includeRecordDetails=true, runAsCurrentUser=true
11
Introduction to REST API Package Version Header
SEE ALSO:
Salesforce Functions Guide : Functions Limits
12
Introduction to REST API Warning Header
Example
Sforce-Query-Options: batchSize=1000
Warning Header
This header is returned if there are warnings, such as the use of a deprecated version of the API.
Example
Warning: 299 - "This API is deprecated and will be removed by Summer '22. Please
see https://help.salesforce.com/articleView?id=000351312 for details."
13
Introduction to REST API Configure Salesforce CORS Allowlist
To escape the exclamation mark in the access token, insert a backslash before it (\!) when the access token is enclosed within double
quotes. For example, the access token string in this cURL command has the exclamation mark (!) escaped.
00D50000000IehZ\!AQcAQH0dMHZfz972Szmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1E6LYUfiDUkWe6H34r1AAwOR8B8fLEz6n
Or, you can enclose the access token within single quotes.
00D50000000IehZ!AQcAQH0dMHZfz972Szmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1E6LYUfiDUkWe6H34r1AAwOR8B8fLEz6n
SEE ALSO:
Setting Up Your Java Developer Environment
14
Introduction to REST API Valid Date and DateTime Formats
The origin URL pattern must include the HTTPS protocol (unless you’re using your localhost) and a domain name. It can also include a
port. The wildcard character (*) is supported and must be in front of a second-level domain name. For example, https://*.example.com
adds all subdomains of example.com to the allowlist.
The origin URL pattern can be an IP address. But an IP address and a domain that resolve to the same address aren’t the same origin,
and you must add them to the CORS allowlist as separate entries.
Google Chrome™ and Mozilla® Firefox® browser extensions are allowed as resources in API version 53 (Winter ‘22) or later . Chrome
extensions must use the
chrome-extension:// andprefix
32 characters without digits or capital letters, for example
chrome-extension://abdkkegmcbiomijcbdaodaflgehfffed. Firefox extensions must use
the prefix
moz-extension:// and an 8-4-4-4-12 format of small alphanumeric characters, for example
moz-extension://1234ab56-78c9-1df2-3efg-4567891hi1j2.
You can get a successful response when requesting a REST resource in a CORS preflight test, but receive an unsuccessful response to the
actual request. This discrepancy can occur when the resource is deleted after the preflight test and before the request is made. It can
also occur if the resource doesn’t exist. A CORS preflight confirms if resources can be passed between servers, but doesn’t check if a
specific resource exists or not. CORS preflight requests are typically issued automatically by a browser.
Note: To access certain OAuth endpoints with CORS, other requirements apply. See Enable CORS for OAuth Endpoints.
dateTime
Use the yyyy-MM-ddTHH:mm:ss.SSS+/-HH:mm or yyyy-MM-ddTHH:mm:ss.SSSZ formats to specify dateTime
fields.
•yyyy is the four-digit year
•
MM is the two-digit month (01-12)
•
dd is the two-digit day (01-31)
•'T' is a separator indicating that time-of-day follows
•
HH is the two-digit hour (00-23)
•
mm is the two-digit minute (00-59)
•
ss is the two-digit seconds (00-59)
•
SSS is the optional three-digit milliseconds (000-999)
•
date
+/-HH:mm is the Zulu (UTC) time zone offset
•'Z'
Use isthetheyyyy-MM-dd
reference UTC timezone
format to specify date fields.
When a timezone is added to a UTC
Note: Specifying an offset for dateTime,
date is not supported.
the result is the date and time in that timezone. For example, 2002-10-10T12:00:00+05:00
is 2002-10-10T07:00:00Z and 2002-10-10T00:00:00+05:00 is 2002-10-09T19:00:00Z. See W3C XML Schema Part 2: DateTime Datatype.
15
Introduction to REST API Status Codes and Error Responses
201 “Created” success code, for POST requests and some PATCH requests.
204 “No Content” success code, for DELETE requests and some PATCH requests.
300 The value returned when an external ID exists in more than one record. The response body contains the list
of matching records.
The request content has not changed since a specified date and time. The date and time is provided in a
304
If-Modified-Since header. See Get Object Metadata Changes for an example.
The request couldn’t be understood, usually because the JSON or XML body contains an error.
400
The session ID or OAuth token used has expired or is invalid. The response body contains the
401 message and
errorCode.
403 The request has been refused. Verify that the logged-in user has appropriate permissions. If the error code is
REQUEST_LIMIT_EXCEEDED, you’ve exceeded API request limits in your org.
The requested resource couldn’t be found. Check the URI for errors, and verify that there are no sharing issues.
404
The method specified in the Request-Line isn’t allowed for the resource specified in the URI.
405
The request could not be completed due to a conflict with the current state of the resource. Check that the
409
API version is compatible with the resource you are requesting.
The requested resource has been retired or removed. Delete or update any references to the resource.
410
The request was not executed because one or more of the preconditions that the client specified in the request
412 headers was not satisfied. For example, the request includes an
If-Unmodified-Since header, but the
data was modified after the specified date.
16
Introduction to REST API API End-of-Life
HTTP Description
response
code
503 The server is unavailable to handle the request. Typically this occurs if the server is down for maintenance or
is currently overloaded.
Incorrect ID example
Using a non-existent ID in a request using JSON or XML ( request_body.json or request_body.xml)
[
{
"fields" : [ "Id" ],
"message" : "Account ID: id value of incorrect type: 001900K0001pPuOAAU",
"errorCode" : "MALFORMED_ID"
}
]
[
{
"message" : "The requested resource does not exist",
"errorCode" : "NOT_FOUND"
}
]
API End-of-Life
Salesforce is committed to supporting each API version for a minimum of three years from the date of first release. In order to mature
and improve the quality and performance of the API, versions that are more than three years old might cease to be supported.
When an API version is to be deprecated, advance notice is given at least one year before support ends. Salesforce will directly notify
customers using API versions planned for deprecation.
Versions 21.0 through 30.0 As of Summer ‘22, these versions are Salesforce Platform API Versions 21.0 through 30.0
deprecated and no longer supported by Retirement
Salesforce.
Starting from Summer ‘23, these versions will
be retired and unavailable.
Versions 7.0 through 20.0 As of Summer ‘22, these versions are retired Salesforce Platform API Versions 7.0 through 20.0
and unavailable. Retirement
If410:GONE
you request anycode.
error resource or use an operation from a retired API version, REST API returns
To identify requests made from old or unsupported API versions of REST API, access the free API Total Usage event type.
17
CHAPTER 2Quick Start
In this chapter ... To set up and run REST API, send a few basic requests to Salesforce. This Quick Start explains setting up
a basic environment and updating a record using REST API. You can set up and use REST API in many
• Using cURL ways, and the examples show how to use the free Developer Edition and cURL.
• Step One: Sign up for
Salesforce Developer
Edition
• Step Two: Set Up
Authentication
• Step Three: Walk
Through the Sample
Code
• Using Other Tools
18
Quick Start Using cURL
Using cURL
Get to know the formatting that you can use with cURL to make requests to Salesforce. This Quick Start uses cURL examples, but you
can use any tool or development environment that can make REST requests.
Familiarize yourself with cURL enough to be able to understand the examples in this guide and translate them into the tool that you’re
using. To attach files containing the body of the request, you must properly format the access token. Use these tips to help you use cURL
while working through the Quick Start. For more information about cURL, see curl.se.
Attach Request Bodies
Many examples include request bodies—JSON or XML files that contain data for the request. When using cURL, save these files to your
local system and attach them to the request using the
—data-binary or -d option.
This example attaches the
new-account.json file.
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/ -H
'Authorization Bearer
00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nE
-H "Content-Type: application/json" —d @new-account.json -X POST
\!
For example, the access token string in this cURL command has the exclamation mark (!) escaped.
00DE0X0A0M0PeLE\!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6n
Or, you can enclose the access token within single quotes to not escape the exclamation mark.
00DE0X0A0M0PeLE!AQcAQH0dMHEXAMPLEzmpkb58urFRkgeBGsxL_QJWwYMfAbUeeG7c1EXAMPLEDUkWe6H34r1AAwOR8B8fLEz6nE
Important: All quotes, whether single or double, must be straight quotes, not curly quotes.
If you have a development sandbox, you can use it with these examples.
19
Quick Start Step Two: Set Up Authentication
Before you begin, verify that your user profile has the API Enabled permission by following the instructions in UserSalesforce
Permissions in Help.
SEE ALSO:
User Permissions
Knowledge Article: Salesforce editions with API access
sfdx auth:web:login
5. At the command line, get the access token by viewing authentication information about your org.
For example:
20
Quick Start Step Two: Set Up Authentication
Client Id PlatformCLI
Connected Status Connected
Id 00D5fORGIDEXAMPLE
Instance Url https://MyDomainName.my.salesforce.com
Username [email protected]
In the command output, make note of the long Access Token string and the Instance Url string. You need both to make cURL requests.
Note: To get a new token after your access token expires, repeat this step of viewing your authentication information.
sfdx force:org:list
Opens the specified org (identified by user) in your browser. Because you’ve successfully authenticated with this org previously using
SFDX, it’s not required to provide your credentials again.
Display the Access Token for My Org
Output includes your access token, client ID, connected status, org ID, instance URL, username, and alias, if applicable.
Set an Alias for My Username
For convenience, create an alias for your username so that you don’t have to enter the entire Salesforce string. For example, instead of
dev
21
Quick Start Step Three: Walk Through the Sample Code
SEE ALSO:
curl https://MyDomainName.my.salesforce.com/services/data/
The output from this request, including the response header, specifies all valid versions. Your result can include more than one value.
Content-Length: 88
Content-Type: application/json;
charset=UTF-8 Server:
[
{
"label":"Spring '11",
"url":"/services/data/v21.0",
"version":"21.0"
}
...
]
The output from this request shows that sobjects is one of the available resources in Salesforce version 57.0.
{
"sobjects" : "/services/data/v57.0/sobjects",
"search" : "/services/data/v57.0/search",
"query" : "/services/data/v57.0/query",
"recent" : "/services/data/v57.0/recent"
}
22
Quick Start Step Three: Walk Through the Sample Code
MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/ -H "Authorization:
curl https://
Bearer access_token"
The output from this request shows that the Account object is available.
Transfer-Encoding: chunked
Content-Type: application/json;
charset=UTF-8 Server:
{
"encoding" : "UTF-8",
"maxBatchSize" : 200,
"sobjects" : [ {
"name" : "Account",
"label" : "Account",
"custom" : false,
"keyPrefix" : "001",
"updateable" : true,
"searchable" : true,
"labelPlural" : "Accounts",
"layoutable" : true,
"activateable" : false,
"urls" : { "sobject" : "/services/data/v57.0/sobjects/Account",
"describe" : "/services/data/v57.0/sobjects/Account/describe",
"rowTemplate" : "/services/data/v57.0/sobjects/Account/{ID}" },
"createable" : true,
"customSetting" : false,
"deletable" : true,
"deprecatedAndHidden" : false,
"feedEnabled" : false,
"mergeable" : true,
"queryable" : true,
"replicateable" : true,
"retrieveable" : true,
"undeletable" : true,
"triggerable" : true },
},
...
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/ -H
"Authorization: Bearer access_token
"
The output from this request shows basic attributes of the Account object such as its name and label, and it lists the most recently used
accounts.
{
"objectDescribe"
: {
23
Quick Start Step Three: Walk Through the Sample Code
"name" : "Account",
"updateable" : true,
"label" : "Account",
"keyPrefix" : "001",
...
"replicateable" : true,
"retrieveable" : true,
"undeletable" : true,
"triggerable" : true
},
"recentItems" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000INjVeIAL"
},
"Id" : "001D000000INjVeIAL",
"Name" : "asdasdasd"
},
...
]
}
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/sobjects/Account/describe/
-H "Authorization: Bearer access_token"
The output from this request shows more detailed information about the Account object, such as its field attributes and child relationships.
{
"name" : "Account",
"fields" :
[
{
"length" : 18,
"name" : "Id",
"type" : "id",
"defaultValue" : { "value" : null },
"updateable" : false,
"label" : "Account ID",
...
},
...
],
"updateable" : true,
24
Quick Start Step Three: Walk Through the Sample Code
"label" : "Account",
...
"urls" :
{
"uiEditTemplate" : "https://MyDomainName.my.salesforce.com/{ID}/e",
"sobject" : "/services/data/v57.0/sobjects/Account",
"uiDetailTemplate" : "https://MyDomainName.my.salesforce.com/{ID}",
"describe" : "/services/data/v57.0/sobjects/Account/describe",
"rowTemplate" : "/services/data/v57.0/sobjects/Account/{ID}",
"uiNewRecord" : "https://MyDomainName.my.salesforce.com/001/e"
},
"childRelationships" :
[
{
"field" : "ParentId",
"deprecatedAndHidden" : false,
...
},
...
],
"createable" : true,
"customSetting" : false,
...
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/query?q=SELECT+name+from+Account
-H "Authorization: Bearer access_token"
The output lists the available Account names, and each name’s preceding attributes include the Account IDs.
{
"done" : true,
"totalSize" : 14,
"records" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IRFmaIAH"
},
"Name" : "Test 1"
},
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IomazIAB"
25
Quick Start Using Other Tools
},
"Name" : "Test 2"
},
...
]
}
Note: You can find more information about SOQL in the Salesforce SOQL and SOSL Reference Guide.
{
"BillingCity" : "Fremont"
}
Specify this JSON file in the REST request. The cURL notation requires the —d option when specifying data. For more information, see
http://curl.haxx.se/docs/manpage.html.
Also, specify the
PATCH method, which is used to update a REST resource. This cURL command retrieves the specified Account object
using its ID field and updates its billing city.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/001D0000
00IroHJ -H "Authorization: Bearer access_token" -H "Content-Type: application/json"
--data-binary
@patchaccount.json -X PATCH
No response body is returned, just the headers.
HTTP/1.1 204 No
Content Server:
Content-Length: 0
To see that the billing address has changed to Fremont, refresh the page on the account.
26
CHAPTER 3 Examples
In this chapter ... This section provides examples of using REST API resources to do a variety of different tasks, including
working with objects, organization information, and queries.
•Getting Information
About My For complete reference information on REST API resources, see Reference on page 122.
Organization
•Working with Object
Metadata
•Working with
Records
•Delete Lightning
Experience Event
Series
•Working with
Searches and
Queries
•Get an Image from a
Rich Text Area Field
•Insert or Update Blob
Data
•Retrieve Blob Data
•Working with
Recently Viewed
Information
•Managing User
Passwords
•Working with
Approval Processes
and Process Rules
•Using Event
Monitoring
•Using Composite
Resources
27
Examples Getting Information About My Organization
IN THIS SECTION:
List Available REST API Versions
Use the Versions resource to list summary information about each REST API version currently available, including the version, label,
and a link to each version's root. You don’t need authentication to retrieve the list of versions.
List Org Limits
Use the Limits resource to list your org limits.
List Available REST Resources
Use the Resources by Version resource to list the resources available for the specified API version. This provides the name and URI
of each additional resource.
Get a List of Objects
Use the Describe Global resource to list the objects available in your org and available to the logged-in user. This resource also returns
the org encoding, as well as maximum batch size permitted in queries.
Get a List of Objects If Metadata Has Changed
Use the Describe Global resource and the If-Modified-Since HTTP header to determine if an object’s metadata has changed.
[
{
"label" : "Spring '11",
"url" :
"/services/data/v21.0",
}, "version" : "21.0"
{
"label" : "Summer '11",
"url" :
"/services/data/v22.0",
}, "version" : "22.0"
{
"label" : "Winter '12",
"url" : "/services/data/v23.0",
28
Examples List Org Limits
"version" : "23.0"
}
...
]
SEE ALSO:
Versions
{
"ActiveScratchOrgs": {
"Max": 3,
"Remaining": 3
},
"AnalyticsExternalDataSizeMB": {
"Max": 40960,
"Remaining": 40960
29
Examples List Org Limits
},
"ConcurrentAsyncGetReportInstances": {
"Max": 200,
"Remaining": 200
},
"ConcurrentEinsteinDataInsightsStoryCreation": {
"Max": 5,
"Remaining": 5
},
"ConcurrentEinsteinDiscoveryStoryCreation": {
"Max": 2,
"Remaining": 2
},
"ConcurrentSyncReportRuns": {
"Max": 20,
"Remaining": 20
},
"DailyAnalyticsDataflowJobExecutions": {
"Max": 60,
"Remaining": 60
},
"DailyAnalyticsUploadedFilesSizeMB": {
"Max": 51200,
"Remaining": 51200
},
"DailyFunctionsApiCallLimit" : {
"Max" : 235000,
"Remaining" : 235000
},
"DailyApiRequests": {
"Max": 5000,
"Remaining": 4937
},
"DailyAsyncApexExecutions": {
"Max": 250000,
"Remaining": 250000
},
"DailyAsyncApexTests": {
"Max": 500,
"Remaining": 500
},
"DailyBulkApiBatches": {
"Max": 15000,
"Remaining": 15000
},
"DailyBulkV2QueryFileStorageMB": {
"Max": 976562,
"Remaining": 976562
},
"DailyBulkV2QueryJobs": {
"Max": 10000,
"Remaining": 10000
},
"DailyDeliveredPlatformEvents" : {
30
Examples List Org Limits
"Max" : 10000,
"Remaining" : 10000
},
"DailyDurableGenericStreamingApiEvents": {
"Max": 10000,
"Remaining": 10000
},
"DailyDurableStreamingApiEvents": {
"Max": 10000,
"Remaining": 10000
},
"DailyEinsteinDataInsightsStoryCreation": {
"Max": 1000,
"Remaining": 1000
},
"DailyEinsteinDiscoveryPredictAPICalls": {
"Max": 50000,
"Remaining": 50000
},
"DailyEinsteinDiscoveryPredictionsByCDC": {
"Max": 5000000,
"Remaining": 5000000
},
"DailyEinsteinDiscoveryStoryCreation": {
"Max": 100,
"Remaining": 100
},
"DailyGenericStreamingApiEvents": {
"Max": 10000,
"Remaining": 10000
},
"DailyScratchOrgs": {
"Max": 6,
"Remaining": 6
},
"DailyStandardVolumePlatformEvents": {
"Max": 10000,
"Remaining": 10000
},
"DailyStreamingApiEvents": {
"Max": 10000,
"Remaining": 10000
},
"DailyWorkflowEmails": {
"Max": 100000,
"Remaining": 100000
},
"DataStorageMB": {
"Max": 1024,
"Remaining": 1024
},
"DurableStreamingApiConcurrentClients": {
"Max": 20,
"Remaining": 20
31
Examples List Org Limits
},
"FileStorageMB": {
"Max": 1024,
"Remaining": 1024
},
"HourlyAsyncReportRuns": {
"Max": 1200,
"Remaining": 1200
},
"HourlyDashboardRefreshes": {
"Max": 200,
"Remaining": 200
},
"HourlyDashboardResults": {
"Max": 5000,
"Remaining": 5000
},
"HourlyDashboardStatuses": {
"Max": 999999999,
"Remaining": 999999999
},
"HourlyLongTermIdMapping": {
"Max": 100000,
"Remaining": 100000
},
"HourlyManagedContentPublicRequests": {
"Max": 50000,
"Remaining": 50000
},
"HourlyODataCallout": {
"Max": 20000,
"Remaining": 20000
},
"HourlyPublishedPlatformEvents": {
"Max": 50000,
"Remaining": 50000
},
"HourlyPublishedStandardVolumePlatformEvents": {
"Max": 1000,
"Remaining": 1000
},
"HourlyShortTermIdMapping": {
"Max": 100000,
"Remaining": 100000
},
"HourlySyncReportRuns": {
"Max": 500,
"Remaining": 500
},
"HourlyTimeBasedWorkflow": {
"Max": 1000,
"Remaining": 1000
},
"MassEmail": {
32
Examples List Available REST Resources
"Max": 5000,
"Remaining": 5000
},
"MonthlyEinsteinDiscoveryStoryCreation": {
"Max": 500,
"Remaining": 500
},
"MonthlyPlatformEventsUsageEntitlement": {
"Max": 3750000,
"Remaining": 3750000
},
"Package2VersionCreates": {
"Max": 6,
"Remaining": 6
},
"Package2VersionCreatesWithoutValidation": {
"Max": 500,
"Remaining": 500
},
"PermissionSets": {
"Max": 1500,
"Remaining": 1499,
"CreateCustom": {
"Max": 1000,
"Remaining": 999
}
},
"PrivateConnectOutboundCalloutHourlyLimitMB": {
"Max": 0,
"Remaining": 0
},
"SingleEmail": {
"Max": 5000,
"Remaining": 5000
},
"StreamingApiConcurrentClients": {
"Max": 20,
"Remaining": 20
}
}
33
Examples List Available REST Resources
{
"tooling" : "/services/data/v57.0/tooling",
"metadata" : "/services/data/v57.0/metadata",
"eclair" : "/services/data/v57.0/eclair",
"folders" : "/services/data/v57.0/folders",
"prechatForms" : "/services/data/v57.0/prechatForms", "contact-
tracing" : "/services/data/v57.0/contact-tracing", "jsonxform" :
"/services/data/v57.0/jsonxform",
"chatter" : "/services/data/v57.0/chatter",
"payments" : "/services/data/v57.0/payments",
"tabs" : "/services/data/v57.0/tabs",
"appMenu" : "/services/data/v57.0/appMenu",
"quickActions" : "/services/data/v57.0/quickActions",
"queryAll" : "/services/data/v57.0/queryAll",
"commerce" : "/services/data/v57.0/commerce",
"wave" : "/services/data/v57.0/wave",
"iot" : "/services/data/v57.0/iot",
"analytics" : "/services/data/v57.0/analytics",
"search" : "/services/data/v57.0/search",
"smartdatadiscovery" : "/services/data/v57.0/smartdatadiscovery",
"identity" : "https://MyDomainName.my.salesforce.com/id/
00DRO0000008aXd2AI/005RO000000HfnkYAC",
"composite" : "/services/data/v57.0/composite",
"parameterizedSearch" :
"/services/data/v57.0/parameterizedSearch", "fingerprint" :
"/services/data/v57.0/fingerprint",
"theme" : "/services/data/v57.0/theme",
"nouns" : "/services/data/v57.0/nouns",
"domino" : "/services/data/v57.0/domino",
"event" : "/services/data/v57.0/event",
"serviceTemplates" : "/services/data/v57.0/serviceTemplates",
"recent" : "/services/data/v57.0/recent",
"connect" : "/services/data/v57.0/connect",
"licensing" : "/services/data/v57.0/licensing",
"limits" : "/services/data/v57.0/limits",
"process" : "/services/data/v57.0/process",
"dedupe" : "/services/data/v57.0/dedupe",
"async-queries" : "/services/data/v57.0/async-queries",
"query" : "/services/data/v57.0/query",
"jobs" : "/services/data/v57.0/jobs",
"localizedvalue" : "/services/data/v57.0/localizedvalue",
"mobile" : "/services/data/v57.0/mobile",
"emailConnect" : "/services/data/v57.0/emailConnect",
"consent" : "/services/data/v57.0/consent",
"tokenizer" : "/services/data/v57.0/tokenizer",
"compactLayouts" : "/services/data/v57.0/compactLayouts",
"sobjects" : "/services/data/v57.0/sobjects",
"actions" : "/services/data/v57.0/actions",
"support" : "/services/data/v57.0/support"
34
Examples List Available REST Resources
35
Examples Get a List of Objects
Further Information
For information about the identity resource, see Identity URLs.
For the other resources, see Reference .
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/ -H
"Authorization: Bearer token
"
{
"encoding" : "UTF-8",
"maxBatchSize" : 200,
"sobjects" : [ {
"activateable" : false,
"custom" : false,
"customSetting" : false,
"createable" : true,
"deletable" : true,
"deprecatedAndHidden" : false,
"feedEnabled" : true,
"keyPrefix" : "001",
"label" : "Account",
"labelPlural" : "Accounts",
"layoutable" : true,
"mergeable" : true,
"mruEnabled" : true,
"name" : "Account",
"queryable" : true,
"replicateable" : true,
"retrieveable" : true,
"searchable" : true,
"triggerable" : true,
"undeletable" : true,
"updateable" : true,
"urls" : {
"sobject" : "/services/data/v57.0/sobjects/Account",
"describe" : "/services/data/v57.0/sobjects/Account/describe",
"rowTemplate" : "/services/data/v57.0/sobjects/Account/{ID}"
},
},
...
]
}
36
Examples Get a List of Objects If Metadata Has Changed
If changes to an object were made after March 23, 2015, the response body contains metadata for all available objects. For an example,
see Get a List of Objects.
IN THIS SECTION:
Retrieve Metadata for an Object
Use the sObject Basic Information resource to retrieve metadata for an object.
Get Field and Other Metadata for an Object
Use the sObject Describe resource to retrieve all the metadata for an object, including information about each field, URLs, and child
relationships.
Get Object Metadata Changes
Use the sObject Describe resource and the
If-Modified-Since HTTP header to determine if object metadata has changed.
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/ -H
"Authorization: Bearer token
"
37
Examples Get Field and Other Metadata for an Object
{
"objectDescribe" :
{
"name" : "Account",
"updateable" : true,
"label" : "Account",
"keyPrefix" : "001",
...
"replicateable" : true,
"retrieveable" : true,
"undeletable" : true,
"triggerable" : true
},
"recentItems" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000INjVeIAL"
},
"Id" : "001D000000INjVeIAL",
"Name" : "asdasdasd"
},
...
]
}
To get a complete description of an object, including field names and their metadata, see Get a List of Objects.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/desc
ribe/ -H "Authorization: Bearer token"
{
"name" : "Account",
"fields" :
38
Examples Get Object Metadata Changes
[
{
"length" : 18,
"name" : "Id",
"type" : "id",
"defaultValue":{ "value":null },
"updateable" : false,
"label" : "Account ID",
...
},
...
],
"updateable" :
true, "label" :
"Account",
"keyPrefix" :
"001", "custom" :
false,
...
"urls" :
{
"uiEditTemplate" : "https://MyDomainName.my.salesforce.com/{ID}/e",
"sobject" : "/services/data/v57.0/sobjects/Account",
"uiDetailTemplate" : "https://MyDomainName.my.salesforce.com/{ID}",
...
},
"childRelationships" :
[
{
"field" : "ParentId",
"deprecatedAndHidden" : false,
...
},
....
],
"createable" : true,
"customSetting" : false,
...
}
For more information about the items in the request body, see DescribesObjectResult in the SOAP API Developers Guide.
39
Examples Working with Records
You can include the If-Modified-Since header with a date in EEE,ddMMMyyyyHH:mm:ssz format when you use
the sObject Describe resource. If you do, response metadata will only be returned if the object metadata has changed since the
provided
date. If the metadata has not been modified since the provided date, a 304NotModified status code is returned, with no response
body.
The following
Example example
sObject assumes
Describe that no changes, such as new custom fields, have been made to the Merchandise__c object after July
request
3rd, 2013.
/services/data/v57.0/sobjects/Merchandise__c/describe
Example If-Modified-Since header used with request
If-Modified-Since: Wed, 3 Jul 2013 19:43:31 GMT
Example response body
No response body returned
Example response status code
If there were changes to Merchandise__c made after July 3rd, 2013, the response body would contain the metadata for
Merchandise__c. See Get Field and Other Metadata for an Object for an example.
IN THIS SECTION:
Create a Record
Use the sObject Basic Information resource to create new records. You supply the required field values in the request data, and send
the request using the POST HTTP method. The response body contains the ID of the new record if the call is successful.
Update a Record
You use the sObject Rows resource to update records. Provide the updated record information in your request data and use the
PATCH method of the resource with a specific record ID to update that record. Records in a single file must be of the same object
type.
Delete a Record
Use the sObject Rows resource to delete records. Specify the record ID and use the DELETE method of the resource to delete a record.
Get Field Values from a Standard Object Record
You use the GET method of the sObject Rows resource to retrieve field values from a record.
Get Field Values from an External Object Record by Using the Salesforce ID
You use the sObject Rows resource to retrieve field values from a record. Specify the fields you want to retrieve in the
fields
parameter and use the GET method of the resource.
Get Field Values from an External Object Record by Using the External ID Standard Field
You use the sObject Rows resource to retrieve field values from a record. Specify the fields you want to retrieve in the
fields
parameter and use the GET method of the resource.
40
Examples Create a Record
Create a Record
Use the sObject Basic Information resource to create new records. You supply the required field values in the request data, and send
the request using the POST HTTP method. The response body contains the ID of the new record if the call is successful.
The following example request creates a new Account record, with the field values for the new record provided in
newaccount.json.
Only the name field is specified in this example, but you could also provide values for other Account fields.
Example for creating a new Account
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/ -H
"Authorization: Bearer token" -H "Content-Type: application/json" -d "@newaccount.json"
{
"Name" : "Express Logistics and Transport"
}
{
"id" : "001D000000IqhSLIAZ",
"errors" : [ ],
"success" : true
}
Update a Record
You use the sObject Rows resource to update records. Provide the updated record information in your request data and use the PATCH
method of the resource with a specific record ID to update that record. Records in a single file must be of the same object type.
In the following example, the Billing City within an Account is updated. The updated record information is provided in
patchaccount.json.
41
Examples Update a Record
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/001D000000INjVe
-H "Authorization: Bearer token" -H "Content-Type: application/json" -d
@patchaccount.json -X PATCH
Example request body patchaccount.json file for updating fields in an Account object
{
"BillingCity" : "San Francisco"
}
42
Examples Delete a Record
If you use an HTTP library that doesn't allow overriding or setting an arbitrary HTTP method name, you can send a POST request and
provide an override to the HTTP method via the query string parameter
_HttpMethod. In the PATCH example, you can replace the
PostMethod line with one that doesn't use override:
PostMethod m = new PostMethod(url + "?_HttpMethod=PATCH");
SEE ALSO:
sObject Rows
Conditional Request Headers
Delete a Record
Use the sObject Rows resource to delete records. Specify the record ID and use the DELETE method of the resource to delete a record.
Example for deleting an Account record
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/001D000000INjVe
-H "Authorization: Bearer token" -X DELETE
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/001D0
00000INjVe ?fields=AccountNumber,BillingPostalCode -H "Authorization: Bearer
token"
Example request body
None required
Example response body
{
"AccountNumber" : "CD656092",
"BillingPostalCode" : "27215",
}
43
Examples Get Field Values from an External Object Record by Using the
Salesforce ID
Get Field Values from an External Object Record by Using the Salesforce ID
You use the sObject Rows resource to retrieve field values from a record. Specify the fields you want to retrieve in the
fields parameter
and use the GET method of the resource.
In the following example, the
Country__c custom field is retrieved from an external object that’s associated with a
non-high-data-volume external data source.
Example for retrieving values from fields on the Customer external object
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Customer__x/x01D0000000002
-H "Authorization: Bearer token"
{
"attributes" : {
"type" : "Customer__x",
"url" : "/services/data/v57.0/sobjects/Customer__x/x01D0000000002RIAQ"
},
"Country__c" : "Argentina",
"Id" : "x01D0000000002RIAQ"
}
Get Field Values from an External Object Record by Using the External ID
Standard Field
You use the sObject Rows resource to retrieve field values from a record. Specify the fields you want to retrieve in fields parameter
the and use the GET method of the resource.
In the following example, the id (CACTU) isn’t a
Country__c custom field is retrieved from an external object. Notice that the
Salesforce ID. Instead, it’s the External ID standard field of the external object.
Example for retrieving values from fields on the Customer external object
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Customer__x/CACTU?fields=C
-H "Authorization: Bearer token"
{
"attributes" : {
"type" : "Customer__x",
"url" : "/services/data/v57.0/sobjects/Customer__x/CACTU"
},
"Country__c" : "Argentina",
44
Examples Retrieve a Record Using an External ID
"ExternalId" : "CACTU"
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/Merchandise
-H "Authorization: Bearer token"
{
"attributes" : {
"type" : "Merchandise__c",
"url" : "/services/data/v57.0/sobjects/Merchandise__c/a00D0000008oWP8IAM"
},
"Id" : "a00D0000008oWP8IAM",
"OwnerId" : "005D0000001KyEIIA0",
"IsDeleted" : false,
"Name" : "Example Merchandise",
"CreatedDate" : "2012-07-12T17:49:01.000+0000",
"CreatedById" : "005D0000001KyEIIA0",
"LastModifiedDate" : "2012-07-12T17:49:01.000+0000",
"LastModifiedById" : "005D0000001KyEIIA0",
"SystemModstamp" : "2012-07-12T17:49:01.000+0000",
"Description__c" : "Merch with external ID",
"Price__c" : 10.0,
"Total_Inventory__c" : 100.0,
"Distributor__c" : null,
"MerchandiseExtID__c" : 123.0
45
Examples Insert or Update (Upsert) a Record Using an External ID
Note:In REST API, upsert uses external ids, not record ids. In Apex, however, upsert can be used with both external ids and record
ids. Be aware of the difference if you use both REST API and Apex.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/custo
mExtIdField__c/11999 -H "Authorization: Bearer token" -H "Content-Type:
application/json" -d @newrecord.json
-X PATCH
Example JSON request body newrecord.json file
{
"Name" : "California Wheat
Corporation", "Type" : "New Customer"
}
{
"id" : "00190000001pPvHAAU",
"errors" : [ ],
"success" : true,
"created": true
}
Note: The
created parameter is present in the response in API version 46.0 and later. It doesn't appear in earlier versions.
Error responses
Incorrect external ID field:
{
"message" : "The requested resource does not
exist", "errorCode" : "NOT_FOUND"
}
For more information, see Status Codes and Error Responses on page 16.
46
Examples Insert or Update (Upsert) a Record Using an External ID
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/Id -H
"Authorization: Bearer token
" -H "Content-Type: application/json" -d @newrecord.json
-X POST
{
"Name" : "California Wheat
Corporation", "Type" : "New Customer"
}
{
"id" : "001D000000Kv3g5IAB",
"success" : true,
"errors" : [ ],
"created": true
}
The HTTP status code is 201 (Created).
Note: The
created parameter is present in the response in API version 46.0 and later. It doesn't appear in earlier versions.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/customExtIdField__
-H "Authorization: Bearer token" -H "Content-Type: application/json" -d @updates.json
-X PATCH
{
"BillingCity" : "San Francisco"
}
{
"id" : "001D000000Kv3g5IAB",
"success" : true,
"errors" : [ ],
"created": false
}
In API version 45.0 and earlier, the HTTP status code is 204 (No Content) and there isn’t a response body.
47
Examples Insert or Update (Upsert) a Record Using an External ID
Error responses
If the external ID value isn't unique, an HTTP status code 300 is returned, plus a list of the records that matched the query. For more
information about errors, see Status Codes and Error Responses on page 16.
If the external ID field doesn't exist, an error message and code is returned:
{
"message" : "The requested resource does not
exist", "errorCode" : "NOT_FOUND"
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Line_Item__c/LineItemExtID
-H "Authorization: Bearer token" -H "Content-Type: application/json" -d @new.json -X
PATCH
{
"Name" :
"LineItemCreatedViaExtID",
"Merchandise__r" :
{
} "MerchandiseExtID__c" : 123
}
{
"id" : "a02D0000006YUHrIAO",
"errors" : [ ],
"success" : true,
"created": true
}
The HTTP status code is 201 (Created).
Note: The
created parameter is present in the response in API version 46.0 and later. It doesn't appear in earlier versions.
48
Examples Traverse Relationships with Friendly URLs
Error responses
If the external ID value isn't unique, an HTTP status code 300 is returned, plus a list of the records that matched the query. For
more information about errors, see Status Codes and Error Responses on page 16.
If the external ID field doesn't exist, an error message and code is returned:
{
"message" : "The requested resource does not
exist", "errorCode" : "NOT_FOUND"
}
You can also use this approach to update existing records. For example, if you created the Line_Item__c shown in the example above,
you can try to update the related Merchandise__c using another request.
Example for updating a record
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Line_Item__c/LineItemExtID
-H "Authorization: Bearer token" -H "Content-Type: application/json" -d @updates.json
-X PATCH
{
"Merchandise__r" :
{
"MerchandiseExtID__c" : 333
}
}
{
"id" : "001D000000Kv3g5IAB",
"success" : true,
"errors" : [ ],
"created": false
}
In API version 45.0 and earlier, the HTTP status code is 204 (No Content) and there isn’t a response body.
If the relationship type is master-detail and the relationship is set to not allow reparenting, and you try to update the parent external ID,
you get an HTTP status code 400 error with an error code of INVALID_FIELD_FOR_INSERT_UPDATE.
SEE ALSO:
sObject Rows by External ID
49
Examples Traverse Relationships with Friendly URLs
Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.
Relationship names follow certain conventions that depend on the direction (parent to child, or child to parent) of the relationship and
the name of the related object. The conventions are described in Understanding Relationship Names in the SOQL and SOSL Reference.
There are limits to the number of relationship traversals you can make in a single REST API call. These limits are the same as the limits
for SOQL, as described in Understanding Relationship Query Limitations in the SOQL and SOSL Reference. Keep the following limitations
in mind when traversing relationships.
•When specifying child-to-parent relationships, no more than five levels can be traversed. The following traverses two child-to-parent
relationships.
https://MyDomainName
.my.salesforce.com/services/data/v57.0/sobjects/ChildOfChild__c/ record
id/Child__r/ParentOfChild__r
• When specifying parent-to-child relationships, no more than one level can be traversed. The following traverses one parent-to-
child relationship.
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/ParentOfChild__c/
record
id/Child__r
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Contact/0035e00000PiemmAAB/A
-H "Authorization: Bearer token"
{
"attributes": {
"type": "Account",
"url": "/services/data/v57.0/sobjects/Account/0015e00000TwULCAA3"
},
"Id": "0015e00000TwULCAA3",
"IsDeleted": false,
"Name": "relationshipAccountName",
"PhotoUrl": "/services/images/photo/0015e00000TwULCAA3",
"OwnerId": "0055e000003E8ooAAC",
"CreatedDate": "2021-11-06T17:38:40.000+0000",
"CreatedById": "0055e000003E8ooAAC",
"LastModifiedDate": "2021-11-06T17:38:40.000+0000",
"LastModifiedById": "0055e000003E8ooAAC",
"SystemModstamp": "2021-11-06T17:38:40.000+0000",
"LastActivityDate": null,
"LastViewedDate": "2021-11-06T17:40:50.000+0000",
"LastReferencedDate": "2021-11-06T17:40:50.000+0000"
50
Examples Traverse Relationships with Friendly URLs
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/a01D000000I
-H "Authorization: Bearer token"
{
"attributes" :
{
"type" : "Distributor__c",
"url" : "/services/data/v57.0/sobjects/Distributor__c/a03D0000003DUhcIAG"
},
"Id" : "a03D0000003DUhcIAG",
"OwnerId" : "005D0000001KyEIIA0",
"IsDeleted" : false,
"Name" : "Distributor1",
"CreatedDate" : "2011-12-16T17:43:01.000+0000",
"CreatedById" : "005D0000001KyEIIA0",
"LastModifiedDate" : "2011-12-16T17:43:01.000+0000",
"LastModifiedById" : "005D0000001KyEIIA0",
"SystemModstamp" : "2011-12-16T17:43:01.000+0000",
"Location__c" : "San Francisco"
If no related record is associated with the relationship name, the REST API call fails, because the relationship can’t be traversed. Using
the previous example, if the Distributor__c field in the Merchandise__c record was set to
null, the GET call would return a 404 error
response.
You can traverse multiple relationships within the same relationship hierarchy in a single REST API call as long as you don’t exceed the
relationship query limits. If a Line_Item__c custom object is the child in a relationship to a Merchandise__c custom object, and
Merchandise__c also has a child Distributor__c custom object, you can access the Distributor__c record starting from the Line_Item__c
record using something like the following.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Line_Item__c/a02D0000006YL7X
-H "Authorization: Bearer token"
Relationship traversal also supports PATCH and DELETE methods for relationships that resolve to a single record. Using the PATCH
method, you can update the related record.
Example of using PATCH to update a relationship record
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/a01D000000I
-H "Authorization: Bearer token" -d @update_info.json -X PATCH
51
Examples Traverse Relationships with Friendly URLs
Example JSON request body for updating a relationship record contained in update_info.json
{
"Location__c" : "New York"
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/a01D000000I
-H "Authorization: Bearer token" -X DELETE
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/a01D000000I
-H "Authorization: Bearer token"
{
"done" : true,
"totalSize" : 2,
"records" :
[
{
"attributes" :
{
"type" : "Line_Item__c",
"url" : "/services/data/v57.0/sobjects/Line_Item__c/a02D0000006YL7XIAW"
},
"Id" : "a02D0000006YL7XIAW",
"IsDeleted" : false,
"Name" : "LineItem1",
52
Examples Traverse Relationships with Friendly URLs
"CreatedDate" : "2011-12-16T17:44:07.000+0000",
"CreatedById" : "005D0000001KyEIIA0",
"LastModifiedDate" : "2011-12-16T17:44:07.000+0000",
"LastModifiedById" : "005D0000001KyEIIA0",
"SystemModstamp" : "2011-12-16T17:44:07.000+0000",
"Unit_Price__c" : 9.75,
"Units_Sold__c" : 10.0,
"Merchandise__c" : "a00D0000008oLnXIAU",
"Invoice_Statement__c" : "a01D000000D85hkIAB"
},
{
"attributes" :
{
"type" : "Line_Item__c",
"url" : "/services/data/v57.0/sobjects/Line_Item__c/a02D0000006YL7YIAW"
},
"Id" : "a02D0000006YL7YIAW",
"IsDeleted" : false,
"Name" : "LineItem2",
"CreatedDate" : "2011-12-16T18:53:59.000+0000",
"CreatedById" : "005D0000001KyEIIA0",
"LastModifiedDate" : "2011-12-16T18:53:59.000+0000",
"LastModifiedById" : "005D0000001KyEIIA0",
"SystemModstamp" : "2011-12-16T18:54:00.000+0000",
"Unit_Price__c" : 8.5,
"Units_Sold__c" : 8.0,
"Merchandise__c" : "a00D0000008oLnXIAU",
"Invoice_Statement__c" : "a01D000000D85hkIAB"
}
]
}
The serialized structure for the result data is the same format as result data from executing a SOQL query via REST API. See Query on
page 288 for more details on executing SOQL queries via REST API
If no related records are associated with the relationship name, the REST API call returns a 200 response with no record data in the
response body. This result is in contrast to the results when traversing an empty relationship to a single record, which returns a 404 error
response. This behavior is because the single record case resolves to a REST resource that can be used with PATCH or DELETE methods.
In contrast, the multiple record case can only be queried.
If an initial GET request for a relationship with multiple records returns only part of the results, the end of the response contains the field
nextRecordsUrl. For example, you could get a field like the following at the end of your response.
"nextRecordsUrl" : "/services/data/v57.0/query/01gD0000002HU6KIAW-2000"
You can request the next batch of records using the provided URL with your instance and session information, and repeat until all
records have been retrieved. These requests use
nextRecordsUrl and don’t include any parameters. The final batch of records doesn’t
have a
Example usage for retrieving
nextRecordsUrl the remaining results
field.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/query/01gD0000002HU6KIAW-2000
-H "Authorization: Bearer token"
53
Examples Traverse Relationships with Friendly URLs
{
"done" : true,
"totalSize" : 3200,
"records" : [...]
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/a01D000000INj
-H "Authorization: Bearer token"
{
"attributes" :
{
"type" : "Distributor__c",
"url" : "/services/data/v57.0/sobjects/Distributor__c/a03D0000003DUhhIAG"
},
"Location__c" : "Chicago",
}
Similarly, for requests that result in multiple records, you can use a list of fields to specify the fields returned in the record set. For
example, assume you have a relationship that was associated with two Line_Item__c records. You want just the Name and
Units_Sold__c fields from those records. You could use the following call.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/a01D000000INj
-H "Authorization: Bearer token"
{
"done" : true,
"totalSize" : 2,
"records" :
[
{
"attributes" :
{
"type" : "Line_Item__c",
"url" : "/services/data/v57.0/sobjects/Line_Item__c/a02D0000006YL7XIAW"
},
"Name" : "LineItem1",
"Units_Sold__c" : 10.0
54
Examples Get a List of Deleted Records Within a Given Timeframe
},
{
"attributes" :
{
"type" : "Line_Item__c",
"url" : "/services/data/v57.0/sobjects/Line_Item__c/a02D0000006YL7YIAW"
},
"Name" : "LineItem2",
"Units_Sold__c" : 8.0
}
]
}
If any field listed in the fields parameter set isn’t visible to the active user, the REST API call fails. In the previous example, if the
Units_Sold_c field was hidden from the active user by field-level security, the call would return a 400 error response.
curlhttps:// MyDomainName
.my/services/data/v57.0/sobjects/Merchandise__c/deleted/ ?
start=2013-05-05T00%3A00%3A00%2B00%3A00&end=2013-05-10T00%3A00%3A00%2B00%3A00 -H
"Authorization:Bearer "token
{
"deletedRecords" :
[
{
"id" : "a00D0000008pQRAIA2",
"deletedDate" : "2013-05-07T22:07:19.000+0000"
}
],
"earliestDateAvailable" : "2013-05-
03T15:57:00.000+0000", "latestDateCovered" : "2013-05-
} 08T21:20:00.000+0000"
55
Examples Get a List of Updated Records Within a Given Timeframe
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/updated/
?start=2013-05-06T00%3A00%3A00%2B00%3A00&end=2013-05-10T00%3A00%3A00%2B00%3A00 -H
"Authorization: Bearer token"
{
"ids" :
[
"a00D0000008pQR5IAM",
"a00D0000008pQRGIA2",
"a00D0000008pQRFIA2"
],
"latestDateCovered" : "2013-05-08T21:20:00.000+0000"
}
56
Examples Working with Searches and Queries
To delete an entire event series, specify the event ID of the first occurrence in the series and use the DELETE method of the resource to
delete a record.
Example for deleting multiple events or all events from a series
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Event/00Uxx0000000000/from
-H "Authorization: Bearer token" -X DELETE
None needed
{
success: We’re deleting the selected events from the series. Wait for all events to be
removed.
}
Considerations
Deleting from an event onwards doesn’t support calls from events that:
•Occurred before the original value of Recurrence2PatternStartDate.
•Are defined as child events.
If the event series originated outside of Salesforce and the event ID of the first occurrence is unavailable, you can’t delete all events in a
series. Instead, delete events from a specific occurrence onwards.
IN THIS SECTION:
Execute a SOQL Query
Use the Query resource to execute a SOQL query that returns all the results in a single response, or if needed, returns part of the
results and a locator used to retrieve the remaining results.
Execute a SOQL Query that Includes Deleted Items
Use the QueryAll resource to execute a SOQL query that includes information about records that have been deleted because of a
merge or delete. Use QueryAll rather than Query, because the Query resource will automatically filter out items that have been
deleted.
Get Feedback on Query Performance (Beta)
To get feedback on how Salesforce executes your query, report, or list view, use the Query resource along with the
explain
parameter. Salesforce analyzes each query to find the optimal approach to obtain the query results. Depending on the query and
query filters, Salesforce uses an index or internal optimization. To return details on how Salesforce optimizes your query, without
actually running the query, use the
explain parameter. Based on the response, decide whether to fine-tune the performance of
your query, like adding filters to make the query more selective.
57
Examples Execute a SOQL Query
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/query/?q=SELECT+name+from+Account
-H "Authorization: Bearer token"
{
"done" : true,
"totalSize" : 14,
"records" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IRFmaIAH"
},
"Name" : "Test 1"
},
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IomazIAB"
},
"Name" : "Test 2"
},
...
58
Examples Execute a SOQL Query that Includes Deleted Items
]
}
"nextRecordsUrl" : "/services/data/v57.0/query/01gD0000002HU6KIAW-2000"
In such cases, request the next batch of records and repeat until all records have been retrieved. These requests nextRecordsUrl,
use and do not include any parameters.
Example usage for retrieving the remaining query results
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/query/01gD0000002HU6KIAW-2000
-H "Authorization: Bearer token"
{
"done" : true,
"totalSize" : 3214,
"records" : [...]
}
{
"done" : true,
"totalSize" : 1,
"records" :
[
{
"attributes" :
59
Examples Get Feedback on Query Performance (Beta)
{
"type" : "Merchandise__c",
"url" : "/services/data/v57.0/sobjects/Merchandise__c/a00D0000008pQRAIX2"
},
"Name" : "Merchandise 1"
},
]
}
"nextRecordsUrl" : "/services/data/v57.0/query/01gD0000002HU6KIAW-2000"
In such cases, request the next batch of records and repeat until all records have been retrieved. These requests use
nextRecordsUrl,
and do not include any parameters.
Although the
nextRecordsUrl has query in the URL, it still provides remaining results from the initial QueryAll request. The
remaining results include deleted records that matched the initial query.
Example usage for retrieving the remaining results
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/query/01gD0000002HU6KIAW-2000
-H "Authorization: Bearer token"
{
"done" : true,
"totalSize" : 3214,
"records" : [...]
}
Note: This feature is a Beta Service. Customer may opt to try such Beta Service in its sole discretion. Any use of the Beta Service
is subject to the applicable Beta Services Terms provided at Agreements and Terms.
The response contains one or more query execution plans, sorted from most optimal to least optimal. The most optimal plan is the plan
that’s used when the query, report, or list view is executed.
60
Examples Search for a String
For more details on the fields returned when using explain, see the explain parameter in Query Options Headers. For more
information on making queries more selective, see Working with Very Large SOQL Queries in the Apex Developer Guide.
curlhttps:// MyDomainName.my.salesforce.com/services/data/v57.0/query/?explain=
SELECT+Name+FROM+Merchandise__c+WHERE+CreatedDate+=+TODAY+AND+Price__c+>+10.0
The response body for a performance feedback query looks like this:
{
"plans" : [ {
"cardinality" : 1,
"fields" : [ "CreatedDate" ],
"leadingOperationType" : "Index",
"notes" : [ {
"description" : "Not considering filter for optimization because unindexed",
"fields" : [ "IsDeleted" ],
"tableEnumOrId" : "Merchandise__c"
}],
"relativeCost" : 0.0,
"sobjectCardinality" : 3,
"sobjectType" : "Merchandise__c"
},{
"cardinality" : 1,
"fields" : [ ],
"leadingOperationType" : "TableScan",
"notes" : [ {
"description" : "Not considering filter for optimization because unindexed",
"fields" : [ "IsDeleted" ],
"tableEnumOrId" : "Merchandise__c"
}],
"relativeCost" : 0.65,
"sobjectCardinality" : 3,
"sobjectType" : "Merchandise__c"
} ]
}
This response indicates that Salesforce found two possible execution plans for this query. The first plan uses the CreatedDate index field
to improve the performance of this query. The second plan scans all records without using an index. If the query is executed, the first
plan is used. Both plans note that there’s no secondary optimization for filtering out records marked as deleted because the IsDeleted
field isn’t indexed.
61
Examples Search for a String
Example usage
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/search/?q=FIND+%7BAcme%7D
-H "Authorization: Bearer token"
{
"searchRecords" : [ {
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IqhSLIAZ"
},
"Id" : "001D000000IqhSLIAZ",
},{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IomazIAB"
},
"Id" : "001D000000IomazIAB",
} ]
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/parameterizedSearch/?q=Acme
-H "Authorization: Bearer token"
Account search for results containing Acme, returning the id and name fields
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/parameterizedSearch/?q=Acme&sobject
-H "Authorization: Bearer token"
{
"searchRecords" : [ {
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IqhSLIAZ"
},
"Id" : "001D000000IqhSLIAZ"
},{
62
Examples Search for a String
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IomazIAB"
},
"Id" : "001D000000IomazIAB"
} ]
}
Note: The metadata parameter is only returned if the request specified metadata=LABELS.
{
"searchRecords" : [ {
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IqhSLIAZ"
},
"Id" : "001D000000IqhSLIAZ",
},{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IomazIAB"
},
"Id" : "001D000000IomazIAB",
}],
"metadata" : {
"entityetadata" : [ {
"entityName" : "Account",
"fieldMetadata" : [ {
"name" : "Name",
"label" : "Account Name"
} ]
} ]
}
}
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/parameterizedSearch
"Authorization: Bearer token " -H "Content-Type: application/json” -d "@search.json”
{
"q":"Smith",
63
Examples Get the Default Search Scope and Order
{
"searchRecords" : [ {
"attributes" : {
"type" : "Contact",
"url" : "/services/data/v57.0/sobjects/Contact/003xx000004TraiAAC"
},
"Id" : "003xx000004TraiAAC",
"FirstName" : "Smith",
"LastName" : "Johnson"
},{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DHXnAAO"
},
"Id" : "001xx000003DHXnAAO",
"NumberOfEmployees" : 100
} ]
}
SEE ALSO:
Search
Parameterized Search
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/search/scopeOrder -H
"Authorization: Bearer token
"
64
Examples Get Search Result Layouts for Objects
[
{
"type":"Site",
"url":"/services/data/v57.0/sobjects/Site/describe"
},
{
"type":"Idea",
"url":"/services/data/v57.0/sobjects/Idea/describe"
},
{
"type":"Case",
"url":"/services/data/v57.0/sobjects/Case/describe"
},
{
"type":"Opportunity",
"url":"/services/data/v57.0/sobjects/Opportunity/describe"
},
{
"type":"Account",
"url":"/services/data/v57.0/sobjects/Account/describe"
},
{
"type":"User",
"url":"/services/data/v57.0/sobjects/User/describe"
}
]
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/search/layout/?q=Account,Contact,Le
"Authorization: Bearer token"
65
Examples Get Search Result Layouts for Objects
},
{ "field" : "Account.Phone",
"format" : null,
"label" : "Phone",
"name" : "Phone"
},
{ "field" : "User.Alias",
"format" : null,
"label" : "Account Owner Alias",
"name" : "Owner.Alias"
}
]
},
{ "label" : "Search Results",
"limitRows" : 25,
"searchColumns" : [ { "field" : "Contact.Name",
"format" : null,
"label" : "Name",
"name" : "Name"
},
{ "field" : "Account.Name",
"format" : null,
"label" : "Account Name",
"name" : "Account.Name"
},
{ "field" : "Account.Site",
"format" : null,
"label" : "Account Site",
"name" : "Account.Site"
},
{ "field" : "Contact.Phone",
"format" : null,
"label" : "Phone",
"name" : "Phone"
},
{ "field" : "Contact.Email",
"format" : null,
"label" : "Email",
"name" : "Email"
},
{ "field" : "User.Alias",
"format" : null,
"label" : "Contact Owner Alias",
"name" : "Owner.Alias"
}
]
},
{ "label" : "Search Results",
"limitRows" : 25,
"searchColumns" : [ { "field" : "Lead.Name",
"format" : null,
"label" : "Name",
"name" : "Name"
},
66
Examples View Relevant Items
{ "field" : "Lead.Title",
"format" : null,
"label" : "Title",
"name" : "Title"
},
{ "field" : "Lead.Phone",
"format" : null,
"label" : "Phone",
"name" : "Phone"
},
{ "field" : "Lead.Company",
"format" : null,
"label" : "Company",
"name" : "Company"
},
{ "field" : "Lead.Email",
"format" : null,
"label" : "Email",
"name" : "Email"
},
{ "field" : "Lead.Status",
"format" : null,
"label" : "Lead Status",
"name" : "toLabel(Status)"
},
{ "field" : "Name.Alias",
"format" : null,
"label" : "Owner Alias",
"name" : "Owner.Alias"
}
]
},
]
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/sobjects/relevantItems
-H"Authorization:Bearer " token
[ {
"apiName" : "Contact",
"key" : "003",
"label" : "Contacts",
"lastUpdatedId" : "135866748",
"recordIds" : [ "003xx000004TxBA" ]
},{ "apiName":"Account",
67
Examples View Relevant Items
"key" : "001",
"label" : "Accounts",
"lastUpdatedId" : "193640553",
"recordIds" : [ "001xx000003DWsT" ]
},{
"apiName" : "User",
"key" : "005",
"label" : "Users",
"lastUpdatedId" : "-199920321",
"recordIds" : [ "005xx000001Svqw", "005xx000001SvwK", "005xx000001SvwA" ]
}, { "apiName" : "Case",
"key" : "069",
"label" : "Cases",
"lastUpdatedId" : "1033471693",
"recordIds" : [ "069xx0000000006", "069xx0000000001", "069xx0000000002" ]
} ]
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/relevantItems?sobjects=Acc
-H "Authorization: Bearer token"
[ {
"apiName" : "Account",
"key" : "001",
"label" : "Accounts",
"lastUpdatedId" : "193640553",
"recordIds" : [ "001xx000003DWsT" ]
},{
"apiName" : "User",
"key" : "005",
"label" : "Users",
"lastUpdatedId" : "102959935",
"recordIds" : [ "005xx000001Svqw", "005xx000001SvwK", "005xx000001SvwA" ]
} ]
Example usage for comparing the user’s current list of relevant records to a previous version
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/relevantItems?lastUpdatedI
-H "Authorization: Bearer token"
lastUpdatedId: 102959935
newResultSetSinceLastQuery: true
68
Examples Get an Image from a Rich Text Area Field
[ {
"apiName" : "User",
"key" : "003",
"label" : "Users",
"lastUpdatedId" : "102959935",
"recordIds" : [ "003xx000004TxBA" ]
},{
"apiName" : "Account",
"key" : "001",
"label" : "Accounts",
"lastUpdatedId" : "193640553",
"recordIds" : [ "001xx000003DWsT" ]
},{
"apiName" : "Case",
"key" : "005",
"label" : "Cases",
"lastUpdatedId" : "1740766611",
"recordIds" : [ "005xx000001Svqw", "005xx000001SvwA" ]
} ]
Example usage for comparing the user’s current list of relevant records to a previous version for a particular object
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/relevantItems?mode=MRU&sob
-H "Authorization: Bearer token"
[ {
"apiName" : "Account",
"key" : "001",
"label" : "Accounts",
"lastUpdatedId" : "193640553",
"recordIds" : [ "001xx000003DWsT" ]
} ]
SEE ALSO:
sObject Relevant Items
69
Examples Insert or Update Blob Data
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Lead/00Q112222233333
-H "Authorization: Bearer token"
{
"attributes": {
"type": "Lead",
"url": "/services/data/v51.0/sobjects/Lead/00Q112222233333"
},
"Id": "00Q112222233333",
"IsDeleted": false,
"MasterRecordId": null,
"LastName": "Smith",
"FirstName": "John",
...
You can see from the LeadPhotoRichText__c field that the refid of the image is 0EM5e000000B9LQ. Use this value in the next
step to retrieve the image.
70
Examples Insert or Update Blob Data
If you use the sObject Basic Information or sObject Rows resources, the maximum file size for uploads is 2 GB for ContentVersion objects
and 500 MB for all other eligible standard objects. If you use the sObject Collections resource, the maximum total size of all files in a
single request is 500 MB.
Note: You can insert or update blob data using a non-multipart message, but you are limited to 50 MB of text data or 37.5 MB
of base64–encoded data.
These sections provide examples of how to insert or update blob data using a multipart content-type request. The request bodes for
these examples use JSON formatting.
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/sobjects/Document/-H
token
"Authorization:Bearer "-H"Content-Type:multipart/form-data;
boundary=\"boundary_string\"" --data-binary @NewDocument.json
{
"Description" : "Marketing brochure for Q1
2011", "Keywords" : "marketing,sales,update",
"FolderId" : "005D0000001GiU7",
"Name" : "Marketing Brochure Q1",
"Type" : "pdf"
}
--boundary_string
Content-Type: application/pdf
Content-Disposition: form-data; name="Body"; filename="2011Q1MktgBrochure.pdf"
--boundary_string--
71
Examples Insert or Update Blob Data
{
"id" : "015D0000000N3ZZIA0",
"errors" : [ ],
"success" : true
}
{
"fields" : [ "FolderId" ],
"message" : "Folder ID: id value of incorrect type:
005D0000001GiU7", "errorCode" : "MALFORMED_ID"
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/Document/015D0000000N3ZZIA0
-H "Authorization: Bearer token" -H "Content-Type: multipart/form-data;
boundary=\"boundary_string\"" --data-binary @UpdateDocument.json -X PATCH
{
"Name" : "Marketing Brochure Q1 - Sales",
"Keywords" : "sales, marketing, first quarter"
}
--boundary_string
Content-Type: application/pdf
Content-Disposition: form-data; name="Body"; filename="2011Q1MktgBrochure.pdf"
--boundary_string--
72
Examples Insert or Update Blob Data
Inserting a ContentVersion
This example inserts a new ContentVersion. In addition to the binary data of the file itself, this code also provides values for other
fields, such as the
ReasonForChange
because a and PathOnClient. This message contains the ContentDocumentId
ContentVersion is always associated with a ContentDocument.
Tip: The ContentVersion object doesn’t support updates. Therefore, you can’t update a ContentVersion. You can only insert a new
ContentVersion. You can see the results of your changes on the Content tab.
Example usage for inserting a ContentVersion
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/sobjects/ContentVersion
-H "Authorization: Bearer token" -H "Content-Type: multipart/form-data;
boundary=\"boundary_string\"" --data-binary @NewContentVersion.json
{
"ContentDocumentId" : "069D00000000so2",
"ReasonForChange" : "Marketing materials updated",
"PathOnClient" : "Q1 Sales Brochure.pdf"
}
--boundary_string
Content-Type: application/octet-stream
Content-Disposition: form-data; name="VersionData"; filename="Q1 Sales Brochure.pdf"
--boundary_string--
{
"id" : "068D00000000pgOIAQ",
"errors" : [ ],
"success" : true
}
73
Examples Insert or Update Blob Data
Parameter Description
binaryPartName Required for blob data. A unique identifier for the binary part.
binaryPartNameAlias Required for blob data. The name of the field in which the binary data is inserted or
updated.
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/composite/sobjects/-H
token
"Authorization:Bearer "-H"Content-Type:multipart/form-data;
boundary=\"boundary_string\"" --data-binary @newdocuments.json
{
"allOrNone" : false,
"records" :
[
{
"attributes" :
{
"type" : "Document",
"binaryPartName": "binaryPart1",
"binaryPartNameAlias": "Body"
},
"Description" : "Marketing Brochure",
"FolderId" : "005xx000001Svs4AAC",
"Name" : "Brochure",
"Type" : "pdf"
},
{
"attributes" :
{
"type" : "Document",
"binaryPartName": "binaryPart2",
74
Examples Insert or Update Blob Data
"binaryPartNameAlias": "Body"
},
"Description" : "Pricing Overview",
"FolderId" : "005xx000001Svs4AAC",
"Name" : "Pricing",
"Type" : "pdf"
}
]
}
--boundary_string
Content-Disposition: form-data; name="binaryPart1";
filename="Brochure.pdf" Content-Type: application/pdf
--boundary_string
Content-Disposition: form-data; name="binaryPart2";
filename="Pricing.pdf" Content-Type: application/pdf
--boundary_string--
[
{
"id": "015xx00000013QjAAI",
"errors": [],
"success": true
},
{
"id": "015xx00000013QkAAI",
"errors": [],
"success": true
}
]
75
Examples Retrieve Blob Data
SEE ALSO:
sObject Basic Information
sObject Rows
sObject Collections
Retrieve Blob Data
Note: The sObject Blob Retrieve resource isn’t compatible with Composite API requests, because it returns binary data instead
of data in JSON or XML formats. Instead, make individual sObject Blob Retrieve requests to retrieve blob data.
The following example retrieves the blob data for the Document record that was created in Insert or Update Blob Data on page 70.
76
Examples Working with Recently Viewed Information
SEE ALSO:
Insert or Update Blob Data
IN THIS SECTION:
View Recently Viewed Records
Use the Recently Viewed Items resource to get a list of recently viewed records.
Mark Records as Recently Viewed
To mark a record as recently viewed using REST API, use the Query resource with a
FORVIEW or FORREFERENCE clause. Use
SOQL to mark records as recently viewed to ensure that information such as the date and time the record was viewed is correctly
set.
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/recent/?limit=2 -H
"Authorization: Bearer token
"
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/a06U000000CelH0IAJ"
},
"Id" : "a06U000000CelH0IAJ",
"Name" : "Acme"
},
{
"attributes" :
{
"type" : "Opportunity",
77
Examples Mark Records as Recently Viewed
"url" : "/services/data/v57.0/sobjects/Opportunity/a06U000000CelGvIAJ"
},
"Id" : "a06U000000CelGvIAJ",
"Name" : "Acme - 600 Widgets"
}
{
"done" : true,
"totalSize" : 1,
"records" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000IRFmaIAH"
},
"Name" : "Acme"
},
]
}
SEE ALSO:
Query
78
Examples Manage User Passwords
IN THIS SECTION:
Manage User Passwords
Use the sObject User Password resource to set, reset, or get information about a user password. Use the HTTP GET method to get
password expiration status, the HTTP POST method to set the password, and the HTTP DELETE method to reset the password.
{
"isExpired" : false
}
XML example response body for getting current password expiration status
<Password>
<isExpired>false</isExpired>
</Password>
{
"message" : "You do not have permission to view this
record.", "errorCode" : "INSUFFICIENT_ACCESS"
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/User/005D0000001KyEIIA0/pa
-H "Authorization: Bearer token" —H "Content-Type: application/json" —d @newpwd.json
—X POST
79
Examples Working with Approval Processes and Process Rules
{
"NewPassword" : "myNewPassword1234"
}
{
"message" : "Your password must have a mix of letters and
numbers.", "errorCode" : "INVALID_NEW_PASSWORD"
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/User/005D0000001KyEIIA0/pa
-H "Authorization: Bearer token" —X DELETE
{
"NewPassword" : "2sv0xHAuM"
}
<Result>
<NewPassword>2sv0xHAuM</NewPassword>
</Result>
SEE ALSO:
sObject User Password
IN THIS SECTION:
Get a List of All Approval Processes
Use the Process Approvals resource to get information about approvals.
Submit a Record for Approval
Use the Process Approvals resource to submit a record or a collection of records for approval. Each call takes an array of requests.
80
Examples Get a List of All Approval Processes
Approve a Record
Use the Process Approvals resource to approve a record or a collection of records. Each call takes an array of requests. The current
user must be an assigned approver.
Reject a Record
Use the Process Approvals resource to reject a record or a collection of records. Each call takes an array of requests. The current user
must be an assigned approver.
Bulk Approvals
Use the Process Approvals resource to do bulk approvals. You can specify a collection of different Process Approvals requests to have
them all executed in bulk.
Get a List of Process Rules
Use the Process Rules resource to get information about process rules.
Get a Particular Process Rule
Use the Process Rules resource and specify thesObjectName and workflowRuleId of the rule you want to get the metadata
for.
Trigger Process Rules
Use the Process Rules resource to trigger process rules. All rules associated with the specified ID will be evaluated, regardless of the
evaluation criteria. All IDs must be for records on the same object.
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/approvals/ -H
"Authorization: Bearer token
"
{
"approvals" : {
"Account" : [ {
"description" : null,
"id" : "04aD00000008Py9",
"name" : "Account Approval Process",
"object" : "Account",
"sortOrder" : 1
} ]
}
}
81
Examples Approve a Record
Example usage
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/approvals/ -H
"Authorization: Bearer token " -H "Content-Type: application/json" -d @submit.json"
{
"requests" : [{
"actionType": "Submit",
"contextId": "001D000000I8mIm",
"nextApproverIds": ["005D00000015rY9"],
"comments":"this is a test",
"contextActorId": "005D00000015rZy",
"processDefinitionNameOrId" : "PTO_Request_Process",
"skipEntryCriteria": "true"}]
}
[ {
"actorIds" : [ "005D00000015rY9IAI" ],
"entityId" : "001D000000I8mImIAJ",
"errors" : null,
"instanceId" : "04gD0000000Cvm5IAC",
"instanceStatus" : "Pending",
"newWorkitemIds" : [ "04iD0000000Cw6SIAS" ],
"success" : true } ]
Approve a Record
Use the Process Approvals resource to approve a record or a collection of records. Each call takes an array of requests. The current
user must be an assigned approver.
Example usage
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/approvals/ -H
"Authorization: Bearer token" -H "Content-Type: application/json" -d @approve.json"
{
"requests" : [{
"actionType" : "Approve",
"contextId" : "04iD0000000Cw6SIAS",
"nextApproverIds" : ["005D00000015rY9"],
"comments" : "this record is approved"}]
}
82
Examples Reject a Record
[ {
"actorIds" : null,
"entityId" : "001D000000I8mImIAJ",
"errors" : null,
"instanceId" : "04gD0000000CvmAIAS",
"instanceStatus" : "Approved",
"newWorkitemIds" : [ ],
"success" : true
} ]
Reject a Record
Use the Process Approvals resource to reject a record or a collection of records. Each call takes an array of requests. The current
user must be an assigned approver.
Example usage
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/approvals/ -H
"Authorization: Bearer token " -H "Content-Type: application/json" -d @reject.json"
{
"requests" : [{
"actionType" : "Reject",
"contextId" : "04iD0000000Cw6cIAC",
"comments" : "This record is rejected."}]
}
[ {
"actorIds" : null,
"entityId" : "001D000000I8mImIAJ",
"errors" : null,
"instanceId" : "04gD0000000CvmFIAS",
"instanceStatus" : "Rejected",
"newWorkitemIds" : [ ],
"success" : true
} ]
Bulk Approvals
Use the Process Approvals resource to do bulk approvals. You can specify a collection of different Process Approvals requests to have
them all executed in bulk.
Example usage
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/approvals/ -H
"Authorization: Bearer token
" -H "Content-Type: application/json" -d @bulk.json"
83
Examples Get a List of Process Rules
{
"requests" :
[{
"actionType" : "Approve",
"contextId" : "04iD0000000Cw6r",
"comments" : "approving an account"
},{
"actionType" : "Submit",
"contextId" : "001D000000JRWBd",
"nextApproverIds" : ["005D00000015rY9"],
"comments" : "submitting an account"
},{
"actionType" : "Submit",
"contextId" : "003D000000QBZ08",
"comments" : "submitting a contact"
}]
[ {
"actorIds" : null,
"entityId" : "001D000000I8mImIAJ",
"errors" : null,
"instanceId" : "04gD0000000CvmZIAS",
"instanceStatus" : "Approved",
"newWorkitemIds" : [ ],
"success" : true
},{
"actorIds" : null,
"entityId" : "003D000000QBZ08IAH",
"errors" : null,
"instanceId" : "04gD0000000CvmeIAC",
"instanceStatus" : "Approved",
"newWorkitemIds" : [ ],
"success" : true
},{
"actorIds" : [ "005D00000015rY9IAI" ],
"entityId" : "001D000000JRWBdIAP",
"errors" : null,
"instanceId" : "04gD0000000CvmfIAC",
"instanceStatus" : "Pending",
"newWorkitemIds" : [ "04iD0000000Cw6wIAC" ],
"success" : true
} ]
84
Examples Get a Particular Process Rule
Example usage
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/rules/ -H
"Authorization: Bearer token
"
{
"rules" : {
"Account" : [ {
"actions" : [ {
"id" : "01VD0000000D2w7",
"name" : "ApprovalProcessTask",
"type" : "Task"
}],
"description" : null,
"id" : "01QD0000000APli",
"name" : "My Rule",
"namespacePrefix" : null,
"object" : "Account"
} ]
}
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/process/rules/Account/01QD0000000AP
-H "Authorization: Bearer token"
{
"actions" : [ {
"id" : "01VD0000000D2w7",
"name" : "ApprovalProcessTask",
"type" : "Task"
}],
"description" : null,
"id" : "01QD0000000APli",
"name" : "My Rule",
"namespacePrefix" : null,
85
Examples Trigger Process Rules
"object" : "Account"
}
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/rules/ -H
"Authorization: Bearer token " -H "Content-Type: application/json" -d @rules.json"
{
"contextIds" : [
"001D000000JRWBd",
"001D000000I8mIm",
"001D000000I8aaf"]
}
{
"errors" : null,
"success" : true
}
•All event monitoring logs are exposed to the API through the EventLogFile object. However, there’s no access through the user
interface, except through the Event Monitoring Analytics app.
•Log files don’t count towards your org’s data or file storage allocations.
•Event Monitoring log files aren’t a system of record for user activity. They’re a source of truth, but they aren’t durable. During
Salesforce site switches, instance refreshes, or unplanned system outages, data loss can occur. For example, if Salesforce moves your
production
org instance, your event log files can have a gap in data. Salesforce makes commercially reasonable efforts to preserve event log file
data integrity and avoid data loss. When Salesforce performs a site switch or instance refresh, it uses an automated process to replicate
event logs.
•Hourly event log files are provided for you to review events in your orgs on an accelerated basis. However, it’s possible that you don’t
get all event log data in hourly event log files, especially during site switches, instance refreshes, or unplanned system outages. For
complete data, use the daily log files.
•If event transmission failures take too long to recover from, log files are retransmitted to ensure that they’re delivered at least one
time. As a result, latent log files can sometimes contain duplicate event data. When your application consumes latent log files, make
sure that your application handles duplicate event delivery.
•When a daily incremental log file is delivered, a new file replaces the original file with the full set of available logs for that date. To
ensure that you’re looking
CreatedDate field.at the most recent log file, check the
•We recommend that you always query the EventLogFile object for new log files to ensure that you also include latent ones. To
identify newly created log files, use the EventLogFile CreatedDate field. Hourly and daily incremental logs are delivered differently.
For details, see Differences Between Hourly and 24-Hour Event Logs.
All queries and examples in this section require the View Event Log Files and API Enabled user permissions. Users with the View All Data
permission can also view event monitoring data.
IN THIS SECTION:
Describe Event Monitoring Using REST
Use the sObject Describe resource to retrieve all metadata for an object, including information about fields, URLs, and child relationships.
Query Event Monitoring Data with REST
Use the Query resource to retrieve field values from a record. Specify the fields you want to retrieve in the fields parameter and use
the
GET method of the resource.
Get Event Monitoring Content from a Record
Use the sObject Blob Retrieve resource to retrieve BLOB data for a given record.
Download Large Event Log Files Using cURL with REST
You might have some event log files that are larger than your tool can handle. A command line tool such as cURL is one method to
download files larger than 100 MB using the sObject Blob Retrieve object
Delete Event Monitoring Data
You can delete event log files that contain a user’s log data. Deleting log files helps you comply with data protection and privacy
regulations and controls the information that others can access. You can’t delete individual rows from event logs. Instead, you must
delete the entire log file that contains the user activity.
Query or View Hourly Event Log Files
To review events in your org on an accelerated basis, get event log files in hourly increments for recent activity. Hourly event log
files can give you quicker visibility into security anomalies and custom code performance issues.
87
Examples Query Event Monitoring Data with REST
Example
You can use REST API to describe event log files. Use a GET request like this:
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/EventLogFile/describe
-H "Authorization: Bearer token"
{
"actionOverrides" : [ ],
"activateable" : false,
"childRelationships" : [ ],
"compactLayoutable" : false,
"createable" : false,
"custom" : false,
"customSetting" : false,
"deletable" : false,
"deprecatedAndHidden" : false,
"feedEnabled" : false,
"fields" : [ {
"autoNumber" : false,
"byteLength" : 18,
"calculated" : false,
"calculatedFormula" : null,
"cascadeDelete" : false,
"caseSensitive" : false,
"controllerName" : null,
"createable" : false,
...
{
"totalSize" : 4,
"done" : true,
"records" : [ {
"attributes" : {
"type" : "EventLogFile",
"url" : "/services/data/v57.0/sobjects/EventLogFile/0ATD000000001bROAQ" }
88
Examples Get Event Monitoring Content from a Record
"Id" : "0ATD000000001bROAQ",
"EventType" : "API",
"LogFile" : "/services/data/v57.0/sobjects/EventLogFile/0ATD000000001bROAQ/LogFile",
"LogDate" : "2014-03-14T00:00:00.000+0000",
"LogFileLength" : 2692.0
},{
"attributes" : {
"type" : "EventLogFile",
"url" : "/services/data/v57.0/sobjects/EventLogFile/0ATD000000001SdOAI" },
"Id" : "0ATD000000001SdOAI",
"EventType" : "API",
"LogFile" :
"/services/data/v57.0/sobjects/EventLogFile/0ATD000000001SdOAI/LogFile",
"LogDate" : "2014-03-13T00:00:00.000+0000",
"LogFileLength" : 1345.0
},{
"attributes" : {
"type" : "EventLogFile",
"url" : "/services/data/v57.0/sobjects/EventLogFile/0ATD000000003p1OAA"
"Id" : "0ATD000000003p1OAA", },
"EventType" : "API",
"LogFile" :
"/services/data/v57.0/sobjects/EventLogFile/0ATD000000003p1OAA/LogFile",
"LogDate" : "2014-06-21T00:00:00.000+0000",
"LogFileLength" : 605.0 },
{ "attributes":{
"type" : "EventLogFile",
"url" : "/services/data/v57.0/sobjects/EventLogFile/0ATD0000000055eOAA"
"Id" : "0ATD0000000055eOAA", },
"EventType" : "API",
"LogFile" :
"/services/data/v57.0/sobjects/EventLogFile/0ATD0000000055eOAA/LogFile",
"LogDate" : "2014-07-03T00:00:00.000+0000",
"LogFileLength" : 605.0
} ]
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/EventLogFile/0ATD000000000
-H "Authorization: Bearer token"
89
Examples Download Large Event Log Files Using cURL with REST
HTTP/1.1 200 OK
Date: Tue, 06 Aug 2013 16:46:10 GMT
Sforce-Limit-Info: api-usage=135/5000
Content-Type: application/octetstream
Transfer-Encoding: chunked
"EVENT_TYPE", "ORGANIZATION_ID", "TIMESTAMP","USER_ID", "CLIENT_IP",
"URI", "REFERRER_URI", "RUN_TIME"
"URI", "00DD0000000K5xD", "20130728185606.020", "005D0000001REDy",
"10.0.62.141", "/secur/contentDoor", "https-//login-salesforce-com/",
"11"
"URI", "00DD0000000K5xD", "20130728185556.930", "005D0000001REI0",
"10.0.62.141", "/secur/logout.jsp", "https-//MyDomainName-my-salesforce-com/00O/o",
"54"
"URI", "00DD0000000K5xD", "20130728185536.725", "005D0000001REI0",
"10.0.62.141", "/00OD0000001ckx3",
"https-//MyDomainName-my-salesforce-com/00OD0000001ckx3", "93"
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/EventLogFile/
0AT30000000000uGAA/LogFile -H "Authorization: Bearer token" -H "X-PrettyPrint:1"
-o ~/downloads/outputLogFile.csv
We recommend using compression when downloading large event log files. See Compression Headers.
90
Examples Query or View Hourly Event Log Files
The Delete Event Monitoring Records user permission is now available to assign to a permission set. (Alternatively, you can assign
the user permission to a custom profile.)
3 In Setup, in the Quick Find box, enter Permission, and then select Permission Sets.
. Create a permission set that includes the Delete Event Monitoring Records user permission, and save the permission set.
4 In Setup, in the Quick Find box, enter users, and then select Users.
. Select the user you want to grant permission to delete event monitoring data.
5 In the Permission Set Assignment section for this user, assign the permission set, and click Save. This action is recorded in Setup
. Audit Trail.
Users assigned this permission set (or any custom profile that includes the Delete Event Monitoring Records user permission) can
6 now delete event monitoring data. The next steps show you how to use the API to delete the data.
. To locate the logs containing the user activity that you want to delete, query the EventLogFile object. For details, see Query Event
8.
7 Monitoring Data with REST on page 88.
.9. Note the IDs of the returned logs.
Use the sObject Rows resource to delete records. Specify the record ID, and use the DELETE method. For more information, see
10
Delete a Record on page 43.
.
91
Examples Query or View Hourly Event Log Files
• Depending on event delivery and final processing time, an event is expected to take three to six hours from the time of the event to
be available in the log file. However, it can take longer.
• When delays in processing occur and event logs for a particular hour arrive later, a new log file is created for the event/date/hour
and lists only the new events. Use the creation date and an incremental sequence number to identify a new log file. Always use the
most recently processed event log file for a particular date. However, if event log files have already been pulled into a third-party
application, they could require deduplication in that application.
If both hourly and daily logs are enabled, daily logs always have a sequence number of 0 because there is only one file per daily
interval. CreatedDate indicates when the file was generated. If CreatedDate is after the last event log file download, there are new
events to be processed.
For best practices, use CreatedDate in the WHERE clause to select logs created after the last downloaded event log file. For
example, if the last downloaded file was at 12PM 2/1/2018, to find the next log file, use +CreatedDate+>+"2018-02-01T12:00:00Z"
in the WHERE clause.
• Your event log files may show a gap in data during site switches, instance refreshes, or unplanned system outages. However, during
site switches and instance refreshes, Salesforce makes a commercially reasonable effort to avoid such data loss by using an
automated
process to replicate event logs.
• In the unlikely case in which no log files are generated for 24 hours, contact Salesforce Support.
IN THIS SECTION:
92
Examples Using Composite Resources
Available in the API. You can manually import data into third-partyAvailable in the API and integrated with the Event Monitoring
visualization apps.Analytics app and third-party visualization apps.
Key values in the EventLogFile object are:Key values in the EventLogFile object are:
•
Interval—Hourly • Interval—Daily
•
CreatedDate—Timestamp of when the log file was•CreatedDate—Timestamp of when the log file was
created. Use this field to identify new files.created. Use this field to identify new files.
•
LogDate—Timestamp that marks the beginning of the•LogDate—Timestamp that marks the beginning of the
interval when the events occurred. For example, for eventsinterval when the events occurred. For example, for events
that occurred between 11:00 AM and 12:00 PM on 3/7/2016,that occurred on 3/7/2016, this field’s value is
this field’s value is 2016-03-07T11:00:00.000Z.2016-03-07T00:00:00.000+0000.
•
Sequence—1+. This value increases by 1 when events are•Sequence—0
added in the same hour after the latest event log file is created.
The value resets to 1 in the subsequent hour.
See also these Considerations regarding hourly event logs.
When an hourly incremental log file is delivered, a file with newWhen a daily incremental log file is delivered, a new file replaces
logs for that hour is created. The Sequence field is incrementedthe original file with the full set of available logs for that date. The
for each new file.
CreatedDate fieldwith
Note: Like is updated.
24-hour event monitoring, hourly event log data is available for the past 30 days.
IN THIS SECTION:
Execute Dependent Requests in a Single API Call
The following example uses the Composite resource to execute several dependent requests all in a single call. First, it creates an
account and retrieves its information. Next it uses the account data and the Composite resource’s reference ID functionality to create
a contact and populate its fields based on the account data. Then it retrieves specific information about the account’s owner by
using query parameters in the request string. Finally, if the metadata has been modified since a certain date, it retrieves account
metadata. The
composite.json file contains the composite request and subrequest data.
Update an Account, Create a Contact, and Link Them with a Junction Object
The following example uses the Composite resource to update some fields on an account, create a contact, and link the two records
with a junction object called
AccountContactJunction. All these requests are executed in a single call. The
composite.json file contains the composite request and subrequest data.
Update a Record and Get Its Field Values in a Single Request
Use the Composite Batch resource to execute multiple requests in a single API call.
93
Examples Execute Dependent Requests in a Single API Call
curl https://yourInstance.salesforce.com/services/data/v57.0/composite/ -H
"Authorization: Bearer token -H "Content-Type: application/json" -d "@composite.json"
{
"allOrNone" : true,
"compositeRequest" : [{
"method" : "POST",
"url" : "/services/data/v57.0/sobjects/Account",
"referenceId" : "NewAccount",
"body" : {
"Name" : "Salesforce",
"BillingStreet" : "Landmark @ 1 Market Street",
94
Examples Execute Dependent Requests in a Single API Call
},{
"method" : "GET",
"referenceId" : "AccountMetadata",
"url" : "/services/data/v57.0/sobjects/Account/describe",
"httpHeaders" : {
"If-Modified-Since" : "Tue, 31 May 2016 18:13:37 GMT"
}
}]
}
{
"compositeResponse" : [{
"body" : {
"id" : "001R00000033JNuIAM",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v57.0/sobjects/Account/001R00000033JNuIAM"
},
"httpStatusCode" : 201,
"referenceId" : "NewAccount"
},{
"body" : {
all the account data
95
Examples Update an Account, Create a Contact, and Link Them with
a Junction Object
},
"httpHeaders" : {
"ETag" : "\"Jbjuzw7dbhaEG3fd90kJbx6A0ow=\"",
"Last-Modified" : "Fri, 22 Jul 2016 20:19:37 GMT"
},
"httpStatusCode" : 200,
"referenceId" : "NewAccountInfo"
},{
"body" : {
"id" : "003R00000025REHIA2",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v57.0/sobjects/Contact/003R00000025REHIA2"
},
"httpStatusCode" : 201,
"referenceId" : "NewContact"
},{
"body" : {
"attributes" : {
"type" : "User",
"url" : "/services/data/v57.0/sobjects/User/005R0000000I90CIAS"
},
"Name" : "Jane Doe",
"CompanyName" : "Salesforce",
"Title" : Director,
"City" : "San Francisco",
"State" : "CA",
"Id" : "005R0000000I90CIAS"
},
"httpHeaders" : { },
"httpStatusCode" : 200,
"referenceId" : "NewAccountOwner"
},{
"body" : null,
"httpHeaders" : {
"ETag" : "\"f2293620\"",
"Last-Modified" : "Fri, 22 Jul 2016 18:45:56 GMT"
},
"httpStatusCode" : 304,
"referenceId" : "AccountMetadata"
}]
}
Update an Account, Create a Contact, and Link Them with a Junction Object
The following example uses the Composite resource to update some fields on an account, create a contact, and link the two records
with a junction object called composite.json
AccountContactJunction. All these requests are executed in a single call. The
file contains the composite request and subrequest data.
96
Examples Update an Account, Create a Contact, and Link Them with
a Junction Object
Update an account, create a contact, and link them with a junction object
curl https://yourInstance.salesforce.com/services/data/v57.0/composite/ -H
"Authorization: Bearer token -H "Content-Type: application/json" -d "@composite.json"
{
"allOrNone" : true,
"compositeRequest" : [{
"method" : "PATCH",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DIpcAAG",
"referenceId" : "UpdatedAccount",
"body" : {
"Name" : "Salesforce",
"BillingStreet" : "Landmark @ 1 Market Street",
"BillingCity" : "San Francisco",
"BillingState" : "California",
"Industry" : "Technology"
}
},{
"method" : "POST",
"referenceId" : "NewContact",
"url" : "/services/data/v57.0/sobjects/Contact/",
"body" : {
"lastname" : "John Doe",
"Phone" : "1234567890"
}
},{
"method" : "POST",
"referenceId" : "JunctionRecord",
"url" : "/services/data/v57.0/sobjects/AccountContactJunction__c",
"body" : {
"accountId__c" : "001xx000003DIpcAAG",
"contactId__c" : "@{NewContact.id}"
}
}]
}
{
"compositeResponse" : [{
"body" : null,
"httpHeaders" : { },
"httpStatusCode" : 204,
"referenceId" : "UpdatedAccount"
},{
"body" : {
"id" : "003R00000025R22IAE",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v57.0/sobjects/Contact/003R00000025R22IAE"
97
Examples Update a Record and Get Its Field Values in a Single Request
},
"httpStatusCode" : 201,
"referenceId" : "NewContact"
},{
"body" : {
"id" : "a00R0000000iN4gIAE",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" :
"/services/data/v57.0/sobjects/AccountContactJunction__c/a00R0000000iN4gIAE"
},
"httpStatusCode" : 201,
"referenceId" : "JunctionRecord"
}]
}
{
"batchRequests" : [
{
"method" : "PATCH",
"url" : "v57.0/sobjects/account/001D000000K0fXOIAZ",
"richInput" : {"Name" : "NewName"}
},{
"method" : "GET",
"url" : "v57.0/sobjects/account/001D000000K0fXOIAZ?fields=Name,BillingPostalCode"
}]
}
{
"hasErrors" : false,
"results" : [{
"statusCode" : 204,
"result" : null
},{
"statusCode" : 200,
"result": {
"attributes" : {
98
Examples Upsert an Account and Create a Contact
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000K0fXOIAZ"
},
"Name" : "NewName",
"BillingPostalCode" : "94105",
"Id" : "001D000000K0fXOIAZ"
}
}]
}
SEE ALSO:
Composite Batch
curl https://yourInstance.salesforce.com/services/data/v57.0/composite/ -H
"Authorization: Bearer token -H "Content-Type: application/json" -d "@composite.json"
{
"allOrNone" : true,
"compositeRequest": [{
"method": "PATCH",
"url": "/services/data/v57.0/sobjects/Account/ExternalAcctId__c/ID12345",
"referenceId": "NewAccount",
"body": {
"Name": "Acme"
}
},{
"method" : "POST",
"url" : "/services/data/v57.0/sobjects/Contact",
"referenceId" : "newContact",
"body" : {
"LastName" : "Harrison",
"AccountId" : "@{NewAccount.id}"
}
}]
}
{
"compositeResponse" : [{
"body" : {
"id" : "0016g00000Wqu1EAAR",
"success" : true,
"errors" : [ ],
"created" : true
99
Examples Create Nested Records
},
"httpHeaders" : {
"Location" : "/services/data/v57.0/sobjects/Account/0016g00000Wqu1EAAR"
},
"httpStatusCode" : 201,
"referenceId" : "NewAccount"
},{
"body" : {
"id" : "0036g00000WKnfLAAT",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v57.0/sobjects/Contact/0036g00000WKnfLAAT"
},
"httpStatusCode" : 201,
"referenceId" : "newContact"
}]
}
SEE ALSO:
sObject Rows by External ID
curlhttps:// yourInstance
.salesforce.com/services/data/v57.0/composite/tree/Account/
token
-H"Authorization:Bearer -H"Content-Type:application/json"-d"@newrecords.json"
Example request body newrecords.json file for creating two new Accounts and their child records
{
"records" :[{
"attributes" : {"type" : "Account", "referenceId" : "ref1"},
"name" : "SampleAccount1",
"phone" : "1234567890",
"website" : "www.salesforce.com",
"numberOfEmployees" : "100",
"industry" : "Banking",
"Contacts" : {
"records" : [{
"attributes" : {"type" : "Contact", "referenceId" : "ref2"},
100
Examples Create Nested Records
"lastname" : "Smith",
"Title" : "President",
"email" : "[email protected]"
},{
"attributes" : {"type" : "Contact", "referenceId" : "ref3"},
"lastname" : "Evans",
"title" : "Vice President",
"email" : "[email protected]"
}]
}
},{
"attributes" : {"type" : "Account", "referenceId" : "ref4"},
"name" : "SampleAccount2",
"phone" : "1234567890",
"website" : "www.salesforce.com",
"numberOfEmployees" : "52000",
"industry" : "Banking",
"childAccounts" : {
"records" : [{
"attributes" : {"type" : "Account", "referenceId" : "ref5"},
"name" : "SampleChildAccount1",
"phone" : "1234567890",
"website" : "www.salesforce.com",
"numberOfEmployees" : "100",
"industry" : "Banking"
}]
},
"Contacts" : {
"records" : [{
"attributes" : {"type" : "Contact", "referenceId" : "ref6"},
"lastname" : "Jones",
"title" : "President",
"email" : "[email protected]"
}]
}
}]
}
{
"hasErrors" : false,
"results" : [{
"referenceId" : "ref1",
"id" : "001D000000K0fXOIAZ"
},{
"referenceId" : "ref4",
"id" : "001D000000K0fXPIAZ"
},{
"referenceId" : "ref2",
"id" : "003D000000QV9n2IAD"
},{
"referenceId" : "ref3",
"id" : "003D000000QV9n3IAD"
},{
101
Examples Create Multiple Records
"referenceId" : "ref5",
"id" : "001D000000K0fXQIAZ"
},{
"referenceId" : "ref6",
"id" : "003D000000QV9n4IAD"
}]
}
Once the request is processed, all six records are created with the parent-child relationships specified in the request.
SEE ALSO:
sObject Tree
curlhttps:// yourInstance
.salesforce.com/services/data/v57.0/composite/tree/Account/
token
-H"Authorization:Bearer -H"Content-Type:application/json"-d"@newrecords.json"
Example request body newrecords.json file for creating four new accounts
{
"records" :[{
"attributes" : {"type" : "Account", "referenceId" : "ref1"},
"name" : "SampleAccount1",
"phone" : "1111111111",
"website" : "www.salesforce.com",
"numberOfEmployees" : "100",
"industry" : "Banking"
},{
"attributes" : {"type" : "Account", "referenceId" : "ref2"},
"name" : "SampleAccount2",
"phone" : "2222222222",
"website" : "www.salesforce2.com",
"numberOfEmployees" : "250",
"industry" : "Banking"
},{
"attributes" : {"type" : "Account", "referenceId" : "ref3"},
"name" : "SampleAccount3",
"phone" : "3333333333",
"website" : "www.salesforce3.com",
"numberOfEmployees" : "52000",
"industry" : "Banking"
},{
"attributes" : {"type" : "Account", "referenceId" : "ref4"},
102
Examples Using Composite Graphs
"name" : "SampleAccount4",
"phone" : "4444444444",
"website" : "www.salesforce4.com",
"numberOfEmployees" : "2500",
"industry" : "Banking"
}]
}
{
"hasErrors" : false,
"results" : [{
"referenceId" : "ref1",
"id" : "001D000000K1YFjIAN"
},{
"referenceId" : "ref2",
"id" : "001D000000K1YFkIAN"
},{
"referenceId" : "ref3",
"id" : "001D000000K1YFlIAN"
},{
"referenceId" : "ref4",
"id" : "001D000000K1YFmIAN"
}]
}
SEE ALSO:
sObject Tree
103
Examples Using Composite Graphs
In the context of composite graph operations, the nodes are composite subrequests. For example, a node can be a composite
subrequest like this:
{
"url" :
"/services/data/v57.0/sobjects/Account/", "body"
: {
"name" : "Cloudy Consulting"
},
"method" : "POST",
} "referenceId" : "reference_id_account_1"
/services/data/vXX.X/sobjects/sObject POST
See sObject Basic Information.
A composite graph can be directed meaning that some nodes use information from other nodes. For example, a node that creates a
Contact can use the ID of an Account node to link the Contact with the Account.
For example:
{
"graphs": [{
"graphId": "graph1",
"compositeRequest": [{
104
Examples Using Composite Graphs
"body": {
"name": "Cloudy Consulting"
},
"method": "POST",
"referenceId":" ",
reference_id_account_1
"url": "/services/data/v57.0/sobjects/ Account/"
},
{
"body": {
"FirstName": "Nellie",
"LastName": "Cashman",
"AccountId": "@{reference_id_account_1.id}"
},
"method": "POST",
"referenceId":
"reference_id_contact_1", "url":
Contact/"
} "/services/data/v57.0/sobjects/
]
}]
}
{
"graphId" : "graphId",
graph
}
{
graphId
"graphId":" ",
"compositeRequest" : [
compositeSubrequest,
compositeSubrequest,
...
]
}
The graphId parameters enable you to identify the graphs when viewing the response. They need not be numeric, but they must
follow these restrictions:
•They must be unique within each composite graph operation.
•They must begin with an alphanumeric character.
•They must be less that 40 characters long.
•They can’t contain a period (’.’).
A single composite graph request can use one or more composite graphs. See Using a Composite Graph.
105
Examples Using Composite Graphs
4.Create a Campaign.
5.Create an Opportunity linked to Account 2 and the Campaign.
6.Create a Lead.
7.Create a CampaignMember linked to the Lead and the Campaign.
{
"graphId" : "1",
"compositeRequest" : [
{
"url" : "/services/data/v57.0/sobjects/ Account/",
"body" : {
"name" : "Cloudy Consulting",
"description" : "Parent account"
},
"method" : "POST",
"referenceId" : "reference_id_account_1"
},
{
"url" : "/services/data/v57.0/sobjects/
"body" : { Account/",
"name" : "Easy Spaces",
"description" : "Child account",
106
Examples Using Composite Graphs
. "ParentId" : "@{reference_id_account_1.id}"
},
"method" : "POST",
"referenceId" : "reference_id_account_2"
},
{
"url" : "/services/data/v57.0/sobjects/ Contact/",
"body" : {
"FirstName" : "Sam",
"LastName" : "Steele",
"AccountId" : "@{reference_id_account_2.id}"
},
"method" : "POST",
"referenceId" : "reference_id_contact_1"
},
{
"url" : "/services/data/v57.0/sobjects/ Contact/",
"body" : {
"FirstName" : "Charlie",
"LastName" : "Dawson",
"ReportsToId" : "@{reference_id_contact_1.id}"
},
"method" : "POST",
"referenceId" : "reference_id_contact_2"
},
{
"url" : "/services/data/v57.0/sobjects/ Contact/",
"body" : {
"FirstName" : "Nellie",
"LastName" : "Cashman",
"ReportsToId" : "@{reference_id_contact_2.id}"
},
"method" : "POST",
"referenceId" : "reference_id_contact_3"
},
{
"url" : "/services/data/v57.0/sobjects/ Campaign/",
"body" : {
"name" : "Spring Campaign"
},
"method" : "POST",
"referenceId" : "reference_id_campaign"
},
{
"url" : "/services/data/v57.0/sobjects/
"body" : { Opportunity/",
"name" : "Opportunity",
"stageName" : "Value Proposition",
"closeDate" : "2025-12-31",
"CampaignId" :
"@{reference_id_campaign.id}", "AccountId" :
},"@{reference_id_account_2.id}"
"method" : "POST",
"referenceId" : "reference_id_opportunity"
107
Examples Using Composite Graphs
},
{
"url" : "/services/data/v57.0/sobjects/Lead/",
"body" : {
"FirstName" : "Belinda",
"LastName" : "Mulroney",
"Company" : "Klondike Quarry",
"Email" : "[email protected]"
},
"method" : "POST",
"referenceId" : "reference_id_lead"
},
{
"url" : "/services/data/v57.0/sobjects/
"body" : { CampaignMember/",
"CampaignId" :
"@{reference_id_campaign.id}", "LeadId" :
},"@{reference_id_lead.id}"
"method" : "POST",
"referenceId" : "reference_id_campaignmember"
}
]
}
Example: GET Details About a Resource and Then Use Them in a Composite Graph
Request
This example shows how you can use GET on a resource, and then use properties of that resource in subsequent requests.
{
"graphs" : [
{
"graphId" : "graph1",
"compositeRequest" : [
{
"method" : "GET",
"url" : "/services/data/v57.0/sobjects/ Account/001R0000003fSRrIAM",
"referenceId" : "refAccount"
},
{
"body" : {
"name" : "Amazing opportunity for
"StageName" : "Stage 1", @{refAccount.Name}",
"CloseDate" : "2025-06-01T23:28:56.782Z",
"AccountId" : "@{refAccount.Id}"
},
"method" : "POST",
"url" : "/services/data/v57.0/sobjects/
"referenceId" : "newOpportunity" Opportunity",
}
]
}
108
Examples Using a Composite Graph
]
}
Graph Depth
• Nodes with no parents are considered to be at depth 1.
• The depth of another node is the maximum number of edges in the graph from depth 1 to that node. An edge between two nodes
occurs when the one node uses a property
@{reference_account.id} ) (such
fromas another node.
Best Practices
As a general practice, keep your graphs as small as possible. For example, it’s more efficient to have 50 graphs with 10 nodes rather
than 1 graph with 500 nodes. Keeping graphs small has two advantages:
•If one item in a graph fails, only the items in that graph are rolled back. It’s easier to identify and handle errors in smaller graphs.
•The server can process multiple, smaller graphs faster and more efficiently.
109
Examples Using a Composite Graph
•Regular composite requests allow you to execute a series of REST API requests in a single call. And you can use the output of one
request as the input to a subsequent request.
•Composite graphs extend regular composite requests by allowing you to assemble a more complicated and complete series of
related objects and records.
•Composite graphs also enable you to ensure that the steps in a given set of requests are either all completed or all not completed.
If you use this option, you don’t have to check which requests were successful.
•Regular composite requests have a limit of 25 subrequests. Composite graphs increase this limit to 500.
Create a request:
{
"graphs": [
{
"graphId": "graphId",
"compositeRequest": [
compositeSubrequest
,
compositeSubrequest
,
...
]
},
{
"graphId": "graphId",
"compositeRequest": [
compositeSubrequest
...
,
]
compositeSubrequest
},
,
...
]
}
{
"graphs" : [
{
"graphId" : "1",
"compositeRequest" : [
{
"url" : "/services/data/v50.0/sobjects/Account/",
"body" : {
"name" : "Cloudy Consulting"
},
110
Examples Using a Composite Graph
"method" : "POST",
"referenceId" : "reference_id_account_1"
},
{
"url" : "/services/data/v50.0/sobjects/Contact/",
"body" : {
"FirstName" : "Nellie",
"LastName" : "Cashman",
"AccountId" : "@{reference_id_account_1.id}"
},
"method" : "POST",
"referenceId" : "reference_id_contact_1"
},
{
"url" :
"/services/data/v50.0/sobjects/Opportunity/", "body"
: {
"CloseDate" : "2024-05-22",
"StageName" : "Prospecting",
"Name" : "Opportunity 1",
"AccountId" : "@{reference_id_account_1.id}"
},
"method" : "POST",
} "referenceId" : "reference_id_opportunity_1"
]
},
{
"graphId" : "2",
"compositeRequest" : [
{
"url" : "/services/data/v50.0/sobjects/Account/",
"body" : {
"name" : "Easy Spaces"
},
"method" : "POST",
"referenceId" : "reference_id_account_2"
},
{
"url" : "/services/data/v50.0/sobjects/Contact/",
"body" : {
"FirstName" : "Charlie",
"LastName" : "Dawson",
"AccountId" : "@{reference_id_account_2.id}"
},
"method" : "POST",
"referenceId" : "reference_id_contact_2"
}
]
}
]
}
111
Examples Using a Composite Graph
{
"graphs" : [
{
"graphId" : "1",
"graphResponse" : {
"compositeResponse" : [
{
"body" : {
"id" : "001R00000064wc7IAA",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v50.0/sobjects/Account/001R00000064wc7IAA"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_account_1"
},
{
"body" : {
"id" : "003R000000DDMlTIAX",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v50.0/sobjects/Contact/003R000000DDMlTIAX"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_contact_1"
},
{
"body" : {
"id" : "006R0000003FPYxIAO",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" :
"/services/data/v50.0/sobjects/Opportunity/006R0000003FPYxIAO"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_opportunity_1"
}
]
},
"isSuccessful" : true
},
{
"graphId" : "2",
"graphResponse" : {
"compositeResponse" : [
112
Examples allOrNone Parameters in Composite and Collections Requests
{
"body" : {
"id" : "001R00000064wc8IAA",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v50.0/sobjects/Account/001R00000064wc8IAA"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_account_2"
},
{
"body" : {
"id" : "003R000000DDMlUIAX",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v50.0/sobjects/Contact/003R000000DDMlUIAX"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_contact_2"
}
]
},
"isSuccessful" : true
}
]
}
113
Examples allOrNone Parameters in Composite and Collections Requests
"collateSubrequests" : false,
"compositeRequest" : [
{
"method" : "POST",
"url" : "/services/data/v57.0/composite/sobjects",
"body" : {
"allOrNone" : innerFlag,
"records" : [
{
"attributes" : { "type" : "Account" },
"Name" : "Northern Trail Outfitters",
"BillingCity" : "San Francisco"
},
{
"attributes" : { "type" : "Account" },
"Name" : "Easy Spaces",
"BillingCity" : "Calgary"
}
]
},
"referenceId" : "newAccounts"
},
{
"method" : "POST",
"url" : "/services/data/v57.0/sObject/Contact",
"body" : {
"FirstName" : "John",
"LastName" : "Smith"
},
"referenceId" : "newContact"
}
]
}
114
Examples allOrNone Parameters in Composite and Collections Requests
{
"compositeResponse" : [
{
"body" : [
{
"id" : "001R00000066cndIAA",
"success" : true,
"errors" : [ ]
},
{
"success" : false,
115
Examples allOrNone Parameters in Composite and Collections Requests
"errors" : [
{
"statusCode" : "DUPLICATES_DETECTED",
"message" : "Use one of these records?",
"fields" : [ ]
}
]
}
],
"httpHeaders" : { },
"httpStatusCode" : 200,
"referenceId" : "collection1"
},
{
"body" : [
{
"errorCode" : "PROCESSING_HALTED",
"message" : "The transaction was rolled back since another operation in the
same transaction failed."
}
],
"httpHeaders" : { },
"httpStatusCode" : 400,
"referenceId" : "newContact"
}
]
}
In this case, the inner sObject Collections request has allOrNone
set to false, so it is not immediately rolled back. However, the
outer Composite request has true so it is rolled back, which also rolls back the inner sObject Collections request.
allOrNone set to
Note: Even though the response body for sObject Collections request shows "success":true for the creation of the
first Account, the fact that the Composite request is rolled back means that the Account creation is rolled back. The final result is
that the new Account is not created.
116
CHAPTER 4Generating an OpenAPI 3.0 Document for
sObjects REST API (Beta)
In this Beta, you can generate an OpenAPI document for the sObjects REST API.
Note: This feature is a Beta Service. Customer may opt to try such Beta Service in its sole discretion.
Any use of the Beta Service is subject to the applicable Beta Services Terms provided at Agreements
and Terms.
With this beta feature, you can generate an OpenAPI document that represents six sObjects REST API
resources that reflect your customizations and configurations.
Supported Editions
This beta feature is available to Developer Editions, Partner Developer Editions, sandboxes, and
scratch orgs that have API Enabled.
2. /services/data/v57.0/sobjects/sObject
• Describes the individual metadata for the specified object. Can create an object record.
For example, retrieve the metadata for the Account object using the GET method or create
an Account object using the POST method.
• See sObject Basic Information.
3. /services/data/v57.0/sobjects/{sObject}/describe
• Describes the individual metadata at all levels for
• sObjects See sObject Describe.
117
Generating an OpenAPI 3.0 Document for sObjects REST
API (Beta)
4. /services/data/v57.0/sobjects/sObject/{id}
• Accesses records based on the specified object ID. Retrieves, updates, or deletes records.
Can retrieve field values. Use the GET method to retrieve records or fields, the DELETE
method to delete records, and the PATCH method to update records.
• See sObject Rows.
5. /services/data/v57.0/sobjects/{sObject}/deleted
• Retrieves the list of individual deleted records within the timespan for
• sObjects See sObject Get Deleted.
6. /services/data/vXX.X/sobjects/{sObject}/{id}/{blobField}
• Retrieves the specified blob field from an individual record and returns it as binary
• data See sObject Blob Retrieve.
MyDomainName
https:// XX.X
.my.salesforce.com/services/data/v
/async/specifications/oas3
Note: The procedure in API version 56.0 has changed from the procedure in earlier API versions.
This step now uses a POST request instead of a GET request.
The API version in this POST request, XX.X, must be 54.0 or greater.
If the server encounters errors processing the request, it reports a “Failed” status and returns a
4xx or 5xx status.
The request body must be
{
"resources" : [ selectors ]
}
can be
where selectors
• "*" (to get all the resources)
118
Generating an OpenAPI 3.0 Document for sObjects REST
API (Beta)
• or, one or more of the following selectors (to only get specific sections of the OpenAPI document)
– "/services/data/v57.0/sobjects"
– sObject sObject can be the
" where
"/services/data/v57.0/sobjects/
name of any standard or custom object that you have access to in your org
– "/services/data/v57.0/sobjects/sObject /{id}"
– "/services/data/v57.0/sobjects/sObject
/deleted"
– "/services/data/v57.0/sobjects/{sObject}/deleted"
– "/services/data/v57.0/sobjects/sObject/describe"
– "/services/data/v57.0/sobjects/{sObject}/describe"
– "/services/data/v57.0/sobjects/{sObject}/{id}/{blobField}"
Note: The API version in the selectors must be the latest version, v57.0. (This does not
need to be the same version as the POST request in Step 1 or the GET request in Step 3.)
For example
{
"resources" : ["*"]
}
or
{
"resources" : [
"/services/data/v57.0/sobjects",
"/services/data/v57.0/sobjects/Contact",
"/services/data/v57.0/sobjects/Lead",
"/services/data/v57.0/sobjects/Lead/{id}",
"/services/data/v57.0/sobjects/{sObject}/deleted",
"/services/data/v57.0/sobjects/Account/describe",
"/services/data/v57.0/sobjects/{sObject}/{id}/{blobField}"
]
}
2. Assuming that the request can be parsed without errors, the server responds with HTTP status code
202 (Accepted) and a JSON response body that contains a URI where you can get the OpenAPI
document. For example:
HTTP/1.1 202
Accepted {
"href" :
119
Generating an OpenAPI 3.0 Document for sObjects REST
API (Beta)
"/v57.0/async/specifications/oas3/NTByUjAwMDAwMDAwMDBh
" }
The last part of this URI ( NTByUjAwMDAwMDAwMDBh in this example) is thelocator ID for the
OpenAPI document.
3. Send a GET request to the same URI with the locator ID appended. For example:
https://MyDomainName.my.salesforce.com/services/data/vXX.X/async/
specifications/oas3/NTByUjAwMDAwMDAwMDBh
The API version in this GET request, XX.X, must be 54.0 or greater.
a.If the server isn’t finished preparing the OpenAPI document, it responds with a 202 (Accepted)
status code and a status message of “Not Started” or “In Progress”. For example:
b. If the server has finished, it responds with a 200 (OK) status and returns the OpenAPI
document in the response body. For example:
},
120
Generating an OpenAPI 3.0 Document for sObjects REST
API (Beta)
"components": {
...
}
}
After the OpenAPI document is generated, you can retrieve the OpenAPI document again by using the
same locator ID for 48 hours. After 48 hours, using that locator ID results in a 404 (Not Found) error.
A new OpenAPI document can only be generated every 6 hours per user. If you call
/async/specifications/oas3 again within 6 hours of the last generation, even with different
request bodies, the API returns the same locator ID.
If you select a resource that doesn’t match any of the supported resources, or you select a resource
that you do not have permissions to access, the request does not fail but the OpenAPI document will
not contain that resource and its path will not be visible in the OpenAPI document.
Giving Feedback
To give us your feedback, log in to Trailhead and then join the OpenAPI Specs for Salesforce REST APIs
Trailblazer Community.
Your feedback is valuable and can help us find existing problems and inspire future change. We’re
looking
for general impressions, improvement suggestions, bugs, and feedback about how well this OpenAPI
document aligns with your OpenAPI use cases.
121
CHAPTER 5 Reference
The following table lists supported REST resources in the API and provides a brief description for each. In each case, the URI for the
resource follows the base URI,
https://MyDomainName.my.salesforce.com.
For example, to retrieve basic information about an Account object in version 57.0 use
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account.
For information about standard and custom objects that you access with sObject resources, see Object Reference for the Salesforce
Platform.
Some of these resources are only available if you have the corresponding package installed or have the corresponding feature enabled.
Note: Some parts of request URIs are case-sensitive, such as IDs. Other parts of URIs aren't case-sensitive, such as object and field
names. If your requests aren't successful, check that your URI has the right letter cases by comparing the URI to the reference and
examples in this guide.
Resources by Version
/services/data/vXX.X
Lists available resources for the specified API version, including resource name and URI.
Invocable Actions
/services/data/vXX.X/actions/standard
/services/data/vXX.X/actions/custom
Use actions to add more functionality to your applications. Choose from standard actions, such as
posting to Chatter or sending email, or create actions based on your company’s needs.
Analytics
/services/data/vXX.X/analytics
(Accesses Reports and
Accesses Reports and Dashboards REST API resources. See the Salesforce Reports and Dashboards
Dashboards REST API)
REST API Developer Guide.
AppMenu Items
/services/data/vXX.X/appMenu/AppSwitcher
Accesses App Menu items from the Salesforce app dropdown menu.
122
Reference
Async Queries
/services/data/vXX.X/async-queries
Submits a SOQL query to be processed asynchronously. See
•Async Query in the Connect REST API Developer Guide.
•Use Async SOQL with Real-Time Event Monitoring in the Salesforce Security Guide.
•Async SOQL Use Cases in the Big Objects Implementation Guide.
Chatter
/services/data/vXX.X/chatter
(Connect REST API)
Accesses features in the Connect REST API. See the Connect REST API Developer Guide.
Commerce
/services/data/vXX.X/commerce
(Place Order REST API)
Accesses features in the Place Order REST API. See the Place Order REST API Developer Guide.
Compact Layouts
/services/data/vXX.X/compactLayouts?q=objectList
Returns a list of compact layouts for multiple objects.
Composite
/services/data/vXX.X/composite
Executes a series of REST API requests in a single POST request, or retrieves a list of other
composite resources with a GET request.
Composite Batch
/services/data/vXX.X/composite/batch
Executes up to 25 subrequests in a single request.
sObject Tree
/services/data/vXX.X/composite/tree
Creates one or more sObject trees with root records of the specified type. An sObject tree is a
collection of nested, parent-child records with a single root record.
sObject Collections
/services/data/vXX.X/composite/sobjects
Executes actions on multiple records in one request.
Financial Services
/services/data/vXX.X/connect/financialservices
Accesses Financial Services objects. See the Financial Services Cloud Developer Guide.
123
Reference
Manufacturing
/services/data/vXX.X/connect/manufacturing
Accesses Manufacturing Cloud objects. See the Manufacturing Cloud Developer Guide.
Consumer Goods
/services/data/vXX.X/connect/object-detection
/services/data/vXX.X/connect/visit/recommendations
Accesses the Consumer Goods Business API. See the Consumer Goods Cloud Developer Guide.
Consent
/services/data/vXX.X/consent
Tracks users’ consent preferences.
Contact Tracing
/services/data/vXX.X/contact-tracing
Tracks health contacts. See the Emergency Response Management for Public Health Developer
Guide.
Dedupe
/services/data/vXX.X/dedupe
Lists duplicate resources, job definitions, and jobs. See the Connect REST API Developer Guide.
Domino
/services/data/vXX.X/domino
For internal use only.
Eclair
/services/data/vXX.X/eclair
(geodata)
Accesses geodata definitions. See Charts Geodata Resource in theAnalytics REST API Developer Guide.
Email Connect
/services/data/vXX.X/emailConnect
For internal use only.
Folders
/services/data/vXX.X/folders
Use the Analytics Folders API to perform operations on report and dashboard folders. See Folders
in the Reports and Dashboards REST API Developer Guide.
IoT
/services/data/vXX.X/iot
Accesses features in the IoT REST API. See the IoT REST API Getting Started Guide.
124
Reference
jsonxform
/services/data/vXX.X/jsonxform
(Analytics REST API)
Tests the results of a rule in a Tableau template. See Rules Testing with
jsonxform/transformation endpoint the Analytics Templates Developer Guide.
Knowledge Management
/services/data/vXX.X/knowledgeManagement
Accesses Salesforce Knowledge features. See the Knowledge Developer Guide.
Licensing
/services/data/vXX.X/licensing
For internal use only.
Limits
/services/data/vXX.X/limits
Lists information about limits in your org. For each limit, this resource returns the maximum
allocation and the remaining allocation based on usage.
Record Count
/services/data/vXX.X/limits/recordCount
Lists information about object record counts in your organization.
Salesforce Surveys
/services/data/vXX.X/localizedvalue
Translation Resources
Use REST APIs to translate survey fields, view, update, or delete translated survey fields. The
translated values of surveys fields are stored in Flow fields.
Metadata
/services/data/vXX.X/metadata
Accesses features in the Metadata API. See the Metadata API Developer Guide.
Parameterized Search
/services/data/vXX.X/parameterizedSearch/?q=searchString
Executes a simple REST search using parameters instead of a SOSL clause. Indicate parameters in
the URI with the GET method. Or, use the POST method to create complex searches in a request
body.
Payments
/services/data/vXX.X/payments
For internal use only.
Process Approvals
/services/data/vXX.X/process/approvals
Accesses all approval processes. Can also be used to submit a particular record if that entity
supports an approval process and one has already been defined. Records can be approved and
rejected if the current user is an assigned approver.
Process Rules
/services/data/vXX.X/process/rules
125
Reference
Query
/services/data/vXX.X/query/?q=soql
(SOQL)
Executes the specified SOQL query.
QueryAll
/services/data/vXX.X/queryAll/?q=soql
(SOQL)
Executes the specified SOQL query. Results can include deleted, merged, and archived records.
Quick Actions
/services/data/vXX.X/quickActions
Returns a list of global quick actions and their types, as well as custom fields and objects that
appear in the Chatter feed.
Search
/services/data/vXX.X/search/?q=sosl
(SOSL)
Executes the specified SOSL search. The search string must be URL-encoded.
Search Scope and Order
/services/data/vXX.X/search/scopeOrder
Returns an ordered list of objects in the default global search scope of a logged-in user. Global
search keeps track of which objects the user interacts with and how often and arranges the search
results accordingly. Objects used most frequently appear at the top of the list.
126
Reference
Describe Global
/services/data/vXX.X/sobjects
sObject PlatformAction
/services/data/vXX.X/sobjects/PlatformAction
Queries for actions displayed in the UI, given a user, a context, device format, and a record ID.
Examples include standard and custom buttons, quick actions, and productivity actions.
127
Reference
sObject Describe
/services/data/vXX.X/sobjects/sObject/describe
Completely describes the individual metadata at all levels for the specified object. For example,
this can be used to retrieve the fields, URLs, and child relationships for the Account object.
sObject ApprovalLayouts
/services/data/vXX.X/sobjects/sObject/describe/approvalLayouts
Retrieve a list of approval layouts for a specified object. This resource is available in REST API
version 30.0 and later.
sObject CompactLayouts
/services/data/vXX.X/sobjects/sObject/describe/compactLayouts
Retrieve a list of compact layouts for a specific object. This resource is available in REST API
version 29.0 and later.
128
Reference
sObject Rows
/services/data/vXX.X/sobjects/sObject/id
Accesses records based on a specified object and record ID. Retrieves, updates, or deletes records
based on the HTTP method. Use the GET method to retrieve records or specific field values, the
DELETE method to delete records, or the PATCH method to update records.
sObject Relationships
/services/data/vXX.X/sobjects/sObject/id/relationshipName
Accesses records by traversing object relationships via friendly URLs. You can retrieve, update, or
delete the record associated with the traversed relationship field. If there are multiple related records,
you can retrieve the complete set of associated records.
129
Reference
Embedded Service
/services/data/vXX.X/support/embeddedservice/configuration/
Configuration Describe
serviceName
Returns information corresponding to one or more service report templates in field service.
Articles Details
/services/data/vXX.X/support/knowledgeArticles/articleId
/services/data/vXX.X/support/knowledgeArticles/articleUrlName
Gets all online article fields, accessible to the user.
Tabs
/services/data/vXX.X/tabs
Returns a list of all tabs—including Lightning page tabs—available to the current user,
regardless of whether the user has chosen to hide tabs via the All Tabs (+) tab customization
feature.
Themes
/services/data/vXX.X/theme
Gets the list of icons and colors used by themes in the Salesforce application.
Tooling API
/services/data/vXX.X/tooling
Accesses features in the Tooling API. See the Tooling API Developer Guide.
UI API
/services/data/vXX.X/ui-api
Accesses features in the UI API. See the User Interface API Developer Guide.
130
Reference Versions
Versions
Lists summary information about each Salesforce version currently available, including the version, label, and a link to each
version's root.
Syntax
URI
/services/data/
Formats
JSON, XML
HTTP Method
GET
Authentication
none
Parameters
none
Example
See List Available REST API Versions on page 28.
Resources by Version
Lists available resources for the specified API version, including resource name and URI.
Syntax
URI
/services/data/vXX.X/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
131
Reference Limits
Parameters
none
Example
See List Available REST Resources. on page 33
Limits
Lists information about limits in your org. For each limit, this resource returns the maximum allocation and the remaining
allocation based on usage.
This resource is available in REST API version 29.0 and later for API users with the View Setup and Configuration permission.
Syntax
URI
/services/data/vXX.X/limits/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Response Body
AnalyticsExternalDataSizeMB Maximum amount of external data in bytes that can be uploaded daily via
REST API
Concurrent REST API requests for results of asynchronous report runs
ConcurrentAsyncGetReportInstances
Concurrent synchronous report runs via REST API
ConcurrentSyncReportRuns
Hourly asynchronous report runs via REST API
HourlyAsyncReportRuns
Hourly synchronous report runs via REST API
HourlySyncReportRuns
Hourly dashboard refreshes via REST API
HourlyDashboardRefreshes
Hourly REST API requests for dashboard results
HourlyDashboardResults
Hourly dashboard status requests via REST API
HourlyDashboardStatuses
MassEmail Daily number of mass emails that are sent to external email addresses
via Apex or APIs
132
Reference Limits
SingleEmail Daily number of single emails that are sent to external email addresses
Note: For orgs created before Spring ’19, the daily limit is enforced
only for emails sent via Apex and Salesforce APIs except for the REST
API. For orgs created in Spring ’19 and later, the daily limit is also
enforced for email alerts, simple email actions, Send Email actions
in flows, and REST API. If one of the newly counted emails can’t be
sent because your org has reached the limit, we notify you by email
and add an entry to the debug logs.
Daily storage for queries in Bulk API 2.0 (measured in MB). This limit is
DailyBulkV2QueryFileStorageMB
available in API version 47.0 and later.
Daily number of query jobs in Bulk API 2.0. This limit is available in API version
DailyBulkV2QueryJobs47.0 and later.
Platform Events
These values apply only to platform events. They don’t apply to change data capture events.
These values apply to platform events and change data capture events.
DailyDeliveredPlatformEvents Org Without Add-On License: Daily Usage and Default Allocation
133
Reference Limits
134
Reference Limits
Salesforce Connect
ActiveScratchOrgs The maximum number of scratch orgs you can have at any given time based
on the edition type. Allocation becomes available if you delete a scratch
org or if a scratch org expires.
The maximum number of successful scratch org creations you can initiate
DailyScratchOrgs
in a rolling (sliding) 24-hour window. Allocations are determined based on
the number of scratch orgs created in the preceding 24 hours.
Package2VersionCreates
Daily number of package versions that you can create. Applies to unlocked
and second-generation managed packages.
Daily number of package versions that skip validation that you can create.
Package2VersionCreatesWithoutValidation
Applies to unlocked and second-generation managed packages.
Salesforce Functions
DailyFunctionsApiCallLimit (API versionDaily API calls in an org with Functions. Values are visible only if Salesforce
53.0 and later) Functions is enabled. For more information, see Functions Limits.
Storage
135
Reference Describe Global
DailyGenericStreamingApiEvents Generic events notifications delivered in the past 24 hours to all CometD
clients
PushTopic event notifications delivered in the past 24 hours to all CometD
DailyStreamingApiEvents
clients
Concurrent CometD clients (subscribers) across all channels and for all event
StreamingApiConcurrentClients
types
Workflows
Example
See List Org Limits.
Describe Global
Lists the available objects and the associated metadata.
In addition, it provides the organization encoding, as well as the maximum batch size permitted in queries. For more information on
encoding, see Internationalization and Character Sets.
You can use the
If-Modified-Since or If-Unmodified-Since header with this resource. When using the
If-Modified-Since header, if no available object’s metadata has changed since the provided date, a 304NotModified
status code is returned with no response body.
Note: The
If-Modified-Since and If-Unmodified-Since headers check for more than object-specific metadata
changes. They also check for org-wide events, such as changes to permissions, profiles, or field labels.
Syntax
URI
/services/data/vXX.X/sobjects/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
136
Reference sObject Basic Information
Parameters
Parameter Description
If-Modified-Since An optional header specifying a date and time. The request returns records that have
been modified after that date and time.
The format is
EEE,ddMMMyyyyHH:mm:ssz. For example:
If-Modified-Since: Mon, 30 Nov 2020 08:34:54 MST.
If-Unmodified-Since An optional header specifying a date and time. The request returns records that have
not been modified after that date and time.
The format is
EEE,ddMMMyyyyHH:mm:ssz. For example:
If-Unmodified-Since: Mon, 30 Nov 2020 08:34:54 MST.
Example
See Get a List of Objects on page 36.
SEE ALSO:
Conditional Request Headers
IN THIS SECTION:
Retrieve Object Metadata Using sObject Basic Information
Retrieves basic metadata for a specified object, including some object properties, recent items, and URIs for other resources related
to the object.
Create Records Using sObject Basic Information
Creates a new record for a specified object based on field values in the request body.
137
Reference Create Records Using sObject Basic Information
Syntax
URI
/services/data/vXX.X/sobjects/sObject/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
Example
For an example of retrieving metadata for an object, see Retrieve Metadata for an Object on page 37.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/
Formats
JSON, XML
HTTP Method
POST
Authentication
Authorization: Bearer token
138
Reference sObject Describe
Parameters
Parameter Description
Content-Type An optional header, specifying the format for the request and response. Possible
choices are:
• Content-Type: application/json
• Content-Type: application/xml
Example
• For an example of creating a new record using POST, see Create a Record on page 41.
• For an example of create a new record along with providing blob data for the record, see Insert or Update Blob Data on page 70.
SEE ALSO:
Object Reference for the Salesforce Platform
sObject Describe
Completely describes the individual metadata at all levels for the specified object. For example, this can be used to retrieve the
fields, URLs, and child relationships for the Account object.
For more information about the metadata that is retrieved, see DescribesObjectResult in the SOAP API Developers Guide.
You can use the
If-Modified-Since or If-Unmodified-Since header with this resource. When using the
If-Modified-Since header, if no available object’s metadata has changed since the provided date, a 304 Not Modified
status code is returned with no response body.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
139
Reference sObject Get Deleted
Parameters
Parameter Description
If-Modified-Since An optional header specifying a date and time. The request returns records that have
been modified after that date and time.
The format is
EEE,ddMMMyyyyHH:mm:ssz. For example:
If-Modified-Since: Mon, 30 Nov 2020 08:34:54 MST.
If-Unmodified-Since An optional header specifying a date and time. The request returns records that have
not been modified after that date and time.
The format is
EEE,ddMMMyyyyHH:mm:ssz. For example:
If-Unmodified-Since: Mon, 30 Nov 2020 08:34:54 MST.
Example
See Get Field and Other Metadata for an Object. For an example that uses the If-Modified-Since HTTP header, see Get Object
Metadata Changes.
SEE ALSO:
Object Reference for the Salesforce
Platform Conditional Request Headers
140
Reference sObject Get Deleted
Syntax
URI
XX.X/sobjects/sObject/deleted/?start=
/services/data/v startDateAndTime
&end=endDateAndTime
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
start Starting date/time (Coordinated Universal Time (UTC)—not local— timezone) of the
timespan for which to retrieve the data. The API ignores the seconds portion of the
specified dateTime value (for example, 12:30:15 is interpreted as 12:30:00 UTC). The
date and time must be formatted as described in Valid Date and DateTime Formats.
The date/time value for
start must chronologically precede end. This parameter
should be URL-encoded.
end Ending date/time (Coordinated Universal Time (UTC)—not local— timezone) of the
timespan for which to retrieve the data. The API ignores the seconds portion of the
specified dateTime value (for example, 12:35:15 is interpreted as 12:35:00 UTC). The
date and time must be formatted as described in Valid Date and DateTime Formats.
This parameter should be URL-encoded
Response Body
deletedRecords array Array of deleted records that satisfy the start and end dates specified in the
request. Each entry contains the record ID and the date and time the record
was deleted in ISO 8601 format, using Coordinated Universal Time (UTC)
timezone.
ISO 8601 format timestamp (Coordinated Universal Time (UTC)—not local—
earliestDateAvailableString
timezone) of the last physically deleted object.
ISO 8601 format timestamp (Coordinated Universal Time (UTC)—not local—
latestDateCovered String
time zone) of the last date covered in the request.
141
Reference sObject Get Updated
Example
For an example of getting a list of deleted items, see Get a List of Deleted Records Within a Given Timeframe.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
XX.X/sobjects/sObject/updated/?start=
/services/data/v startDateAndTime
&end=endDateAndTime
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
start Starting date/time (Coordinated Universal Time (UTC) time zone—not local— timezone)
of the timespan for which to retrieve the data. The API ignores the seconds portion of
the specified dateTime value (for example, 12:30:15 is interpreted as 12:30:00 UTC).
The date and time must be formatted as described in Valid Date and DateTime Formats.
The date/time value for
start must chronologically precede end. This parameter
should be URL-encoded
end Ending date/time (Coordinated Universal Time (UTC) time zone—not local— timezone)
of the timespan for which to retrieve the data. The API ignores the seconds portion of
the specified dateTime value (for example, 12:35:15 is interpreted as 12:35:00 UTC).
142
Reference sObject Named Layouts
Parameter Description
The date and time must be formatted as described in Valid Date and DateTime
Formats. This parameter should be URL-encoded
Response format
ids array Array of updated records that satisfy the start and end dates specified in the
request. Each entry contains the record ID.
String ISO 8601 format timestamp (Coordinated Universal Time (UTC)—not local
latestDateCovered
—
time zone) of the last date covered in the request.
Examples
For an example of getting a list of updated deleted items, see Get a List of Updated Records Within a Given Timeframe.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/namedLayouts/layoutName
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Request body
None
143
Reference sObject Rows
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/User/describe/namedLayouts
-H "Authorization: Bearer token"
SEE ALSO:
Object Reference for the Salesforce Platform
sObject Rows
Accesses records based on a specified object and record ID. Retrieves, updates, or deletes records based on the HTTP method. Use the
GET method to retrieve records or specific field values, the DELETE method to delete records, or the PATCH method to update records.
To create new records, use the sObject Basic Information or sObject Rows by External ID resources.
IN THIS SECTION:
Get Records Using sObject Rows
Gets a record based on the specified object and record ID. The fields and field values of the record are returned in the response body.
This resource can be used with external objects in API version 32.0 and later.
Update Records Using sObject Rows
Updates a record based on the specified object and record ID. Field values provided in the request body replace the existing values
in the record. This resource can be used with external objects in API version 32.0 and later.
Delete Records Using sObject Rows
Deletes records based on the specified object and record ID. This resource can be used with external objects in API version 32.0 and
later.
144
Reference Get Records Using sObject Rows
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
fields A comma-delimited list of fields specifying the fields and values returned in the
response body. For example,
?
fields=name,description,numberofemployees,industry.
If-Match
An optional header specifying a comma-delimited list of one or more ETags. This only
has an effect when used with Account objects. The request is only processed if the
Account’s ETag matches one of the ETags in the list.
For example:
If-Match:
"94C83JSreaVMGpL+lUzv8Dr3inI0kCvuKATVJcTuApA=--gzip",
"ddpAdaTHz+GcV35e7NLJ9iKD3XXVqAzXT1Sl2ykkP7g=--
gzip".
If-None-Match
An optional header specifying a comma-delimited list of one or more ETags. This only
has an effect when used with Account objects. The request is only processed if the
Account’s ETag does not match one of the ETags in the list.
For example:
If-None-Match:
"94C83JSreaVMGpL+lUzv8Dr3inI0kCvuKATVJcTuApA=--gzip",
If-Modified-Since An optional header specifying a date and time. The request returns records that have
"ddpAdaTHz+GcV35e7NLJ9iKD3XXVqAzXT1Sl2ykkP7g=--
gzip".
been modified after that date and time.
The format is
EEE, dd MMM yyyy HH:mm:ss z
For example:
If-Modified-Since: Mon, 30 Nov 2020 08:34:54
MST.
If-Unmodified-Since An optional header specifying a date and time. The request returns records that have
not been modified after that date and time.
The format is
EEE, dd MMM yyyy HH:mm:ss z
For example:
If-Unmodified-Since: Mon, 30 Nov 2020 08:34:54
MST.
145
Reference Update Records Using sObject Rows
Example
For examples of retrieving records, see Get Field Values from a Standard Object Record.
SEE ALSO:
Object Reference for the Salesforce Platform
Parameter Description
Content-Type An optional header that specifies the format for the request and response. The
possible header values are:
• Content-Type: application/json
• Content-Type: application/xml
sObject The name of the object. For example, Account and CustomObject__c.
146
Reference Delete Records Using sObject Rows
Parameter Description
If-Match An optional header specifying a comma-delimited list of one or more ETags. This only
has an effect when used with Account objects. The request is only processed if the
Account’s ETag matches one of the ETags in the list.
For example:
If-Match:
"94C83JSreaVMGpL+lUzv8Dr3inI0kCvuKATVJcTuApA=--gzip",
"ddpAdaTHz+GcV35e7NLJ9iKD3XXVqAzXT1Sl2ykkP7g=--gzip".
If-None-Match An optional header specifying a comma-delimited list of one or more ETags. This only
has an effect when used with Account objects. The request is only processed if the
Account’s ETag does not match one of the ETags in the list.
For example:
If-None-Match:
"94C83JSreaVMGpL+lUzv8Dr3inI0kCvuKATVJcTuApA=--gzip",
"ddpAdaTHz+GcV35e7NLJ9iKD3XXVqAzXT1Sl2ykkP7g=--gzip".
If-Modified-Since An optional header specifying a date and time. The request returns records that have
been modified after that date and time.
The format is
EEE, dd MMM yyyy HH:mm:ss z
For example:
If-Modified-Since: Mon, 30 Nov 2020 08:34:54
MST.
If-Unmodified-Since An optional header specifying a date and time. The request returns records that have
not been modified after that date and time.
The format is
EEE, dd MMM yyyy HH:mm:ss z
For example:
If-Unmodified-Since: Mon, 30 Nov 2020 08:34:54
MST.
Example
For an example of updating a record using PATCH, see Update a Record.
SEE ALSO:
Object Reference for the Salesforce Platform
Conditional Request Headers
147
Reference Delete Records Using sObject Rows
IfETag:
the object is an Account object, the response also contains an ETag header. For example:
"ddpAdaTHz+GcV35e7NLJ9iKD3XXVqAzXT1Sl2ykkP7g=--gzip" This ETag can be If-Match and the
used with
If-None-Match headers. For more information, see Conditional Request Headers.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/id/
Formats
JSON, XML
HTTP Method
DELETE
Authentication
Authorization: Bearer token
Parameters
Parameter Description
If-Match
An optional header specifying a comma-delimited list of one or more ETags. This only
has an effect when used with Account objects. The request is only processed if the
Account’s ETag matches one of the ETags in the list.
For example:
If-Match:
"94C83JSreaVMGpL+lUzv8Dr3inI0kCvuKATVJcTuApA=--gzip",
"ddpAdaTHz+GcV35e7NLJ9iKD3XXVqAzXT1Sl2ykkP7g=--gzip".
If-None-Match An optional header specifying a comma-delimited list of one or more ETags. This only
has an effect when used with Account objects. The request is only processed if the
Account’s ETag does not match one of the ETags in the list.
For example:
If-None-Match:
"94C83JSreaVMGpL+lUzv8Dr3inI0kCvuKATVJcTuApA=--gzip",
"ddpAdaTHz+GcV35e7NLJ9iKD3XXVqAzXT1Sl2ykkP7g=--gzip".
If-Modified-Since An optional header specifying a date and time. The request returns records that have
been modified after that date and time.
The format is
EEE, dd MMM yyyy HH:mm:ss z
For example:
If-Modified-Since: Mon, 30 Nov 2020 08:34:54
MST.
If-Unmodified-Since An optional header specifying a date and time. The request returns records that have
not been modified after that date and time.
The format is
EEE, dd MMM yyyy HH:mm:ss z
148
Reference sObject Rows by External ID
Parameter Description
For example: If-Unmodified-Since: Mon, 30 Nov 2020 08:34:54
MST.
Example
For an example of deleting a record using DELETE, see Delete a Record.
SEE ALSO:
Object Reference for the Salesforce Platform
IN THIS SECTION:
Get Records Using sObject Rows by External ID
Retrieves a record based on the value of the specified external ID field.
Create Records Using sObject Rows by External ID
Creates a new record based on the field values included in the request body. This resource does not require the use of an external
ID field.
Upsert Records Using sObject Rows by External ID
Upserts a record based on the value of the specified external ID field. Based on whether the value of the external ID already exists,
the request either creates a new record or updates an existing one.
Delete Records Using sObject Rows by External ID
Deletes a record based on the value of the specified external ID field.
Return Headers Using sObject Rows by External ID
Returns only the headers that are returned by sending a GET request to the sObject Rows by External ID resource. This gives you a
chance to see returned header values of the GET request before retrieving the content itself.
Note: For security reasons, some Top Level Domains (TLD) can conflict with certain file format extensions. Adjust your
implementation to work around such cases.
For example, using an email address, such as
[email protected], as the External ID returns a “404 not found” error.
There are several workarounds to handle conflicting TLDs.
•Use a different External ID field.
•Create a new External ID field that is the same as the email field and replace the "." with an "_" to handle this case.
•Run a query for emails ending in ".inc" to retrieve the record ID and use that for the upsert request.
149
Reference Create Records Using sObject Rows by External ID
Syntax
URI
/services/data/vXX.X/sobjects/sObject/fieldName/fieldValue
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None
Example
For an example of retrieving a record based on an external ID, see Retrieve a Record Using an External ID on page 45.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/Id
Formats
JSON, XML
HTTP Method
POST
150
Reference Upsert Records Using sObject Rows by External ID
Authentication
Authorization: Bearer token
Parameters
None
Example
Example Request
curl -X POST
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/Id -H
"Authorization: Bearer token" -H "Content-Type: application/json" -d "@newaccount.json"
SEE ALSO:
Object Reference for the Salesforce Platform
Note: For security reasons, some Top Level Domains (TLD) can conflict with certain file format extensions. Adjust your
implementation to work around such cases.
For example, using an email address, such as
[email protected], as the External ID returns a “404 not found” error.
There are several workarounds to handle conflicting TLDs.
•Use a different External ID field.
•Create a new External ID field that is the same as the email field and replace the "." with an "_" to handle this case.
•Run a query for emails ending in ".inc" to retrieve the record ID and use that for the upsert request.
•Use SOAP API instead of REST API for upsert requests.
•Accept the email as a query parameter instead of a path parameter by creating a custom Apex REST API. Use Apex to perform
the upsert request.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/fieldName/fieldValue
151
Reference Delete Records Using sObject Rows by External ID
Formats
JSON, XML
HTTP Method
PATCH
Authentication
Authorization: Bearer token
Parameters
None
Example
For examples of creating and updating records based on external IDs, see Insert or Update (Upsert) a Record Using an External ID on
page 45.
SEE ALSO:
Object Reference for the Salesforce Platform
Note: For security reasons, some Top Level Domains (TLD) can conflict with certain file format extensions. Adjust your
implementation to work around such cases.
For example, using an email address, such as
[email protected], as the External ID returns a “404 not found” error.
There are several workarounds to handle conflicting TLDs.
•Use a different External ID field.
•Create a new External ID field that is the same as the email field and replace the "." with an "_" to handle this case.
•Run a query for emails ending in ".inc" to retrieve the record ID and use that for the upsert request.
•Use SOAP API instead of REST API for upsert requests.
•Accept the email as a query parameter instead of a path parameter by creating a custom Apex REST API. Use Apex to perform
the upsert request.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/fieldName/fieldValue
Formats
JSON, XML
HTTP Method
DELETE
Authentication
Authorization: Bearer token
152
Reference Return Headers Using sObject Rows by External ID
Parameters
None
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/fieldName/fieldValue
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None
SEE ALSO:
Object Reference for the Salesforce Platform
153
Reference sObject ApprovalLayouts
Note: The sObject Blob Retrieve resource isn’t compatible with Composite API requests, because it returns binary data instead
of data in JSON or XML formats. Instead, make individual sObject Blob Retrieve requests to retrieve blob data.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/id/blobField
Formats
Binary data
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
none required
Example
For an example of retrieving blob data from a Document, see Retrieve Blob Data on page 76.
SEE ALSO:
Object Reference for the Salesforce Platform
sObject ApprovalLayouts
Retrieve a list of approval layouts for a specified object. This resource is available in REST API version 30.0 and later.
IN THIS SECTION:
Get Approval Layouts
Gets a list of approval layouts for a specified object. This resource is available in REST API version 30.0 and later.
Return Headers for Approval Layouts
Returns only the headers that are returned by a GET request to sObject ApprovalLayouts resources. This gives you a chance to see
header values before retrieving the content of the resource. This resource is available in REST API version 30.0 and later.
SEE ALSO:
Object Reference for the Salesforce Platform
154
Reference Return Headers for Approval Layouts
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/approvalLayouts/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/describe/approvalL
-H "Authorization: Bearer token"
{
"approvalLayouts" : [ {
"id" : "04aD00000008Py9IAE",
"label" : "MyApprovalProcessName",
"layoutItems" : [...],
"name" : "MyApprovalProcessName"
},{
"id" : "04aD00000008Q0KIAU",
"label" : "Process1",
"layoutItems" : [...],
"name" : "Process1"
} ]
}
If you haven’t defined any approval layouts for an object, the response is {"approvalLayouts" : [ ]}.
Syntax
URI
To return headers of a request for an approval layout description for a specified object, use
/services/data/vXX.X/sobjects/sObject/describe/approvalLayouts/
155
Reference sObject Single Approval Process
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/approvalLayouts/approvalProcessName
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
156
Reference Return Headers for a Single Approval Process on a Specified
Object
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/describe/approvalL
-H "Authorization: Bearer token"
{
"approvalLayouts" : [ {
"id" : "04aD00000008Py9IAE",
"label" : "ExampleApprovalProcessName",
"layoutItems" : [...],
"name" : "ExampleApprovalProcessName"
} ]
}
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/approvalLayouts/approvalProcessName
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
sObject CompactLayouts
Retrieve a list of compact layouts for a specific object. This resource is available in REST API version 29.0 and later.
157
Reference Get Compact Layouts Using sObject CompactLayouts
IN THIS SECTION:
Get Compact Layouts Using sObject CompactLayouts
Retrieves a list of compact layouts for a specific object. This resource is available in REST API version 29.0 and later.
Return Headers Using sObject CompactLayouts
Returns only the headers that are returned by a GET request to the sObject CompactLayouts resource. This gives you a chance to
see header values ahead of time before retrieving the content of the resource. This resource is available in REST API version 29.0 and
later.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/compactLayouts/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/describe/compactLa
-H "Authorization: Bearer token"
{
"compactLayouts" : [ {
"actions" : [ {
"custom" : false,
"icons" : null,
158
Reference Get Compact Layouts Using sObject CompactLayouts
"label" : "Call",
"name" : "CallHighlightAction"
},{
"custom" : false,
"icons" : null,
"label" : "Send Email",
"name" : "EmailHighlightAction"
},{
"custom" : false,
"icons" : null,
"label" : "Map",
"name" : "MapHighlightAction"
},{
"custom" : false,
"icons" : null,
"label" : "Read News",
"name" : "NewsHighlightAction"
},{
"custom" : false,
"icons" : null,
"label" : "View Website",
"name" : "WebsiteHighlightAction"
}],
"fieldItems" : [ {
"editable" : false,
"label" : "Account Name",
"layoutComponents" : [ {
"components" : [ ],
"details" : {
"autoNumber" : false,
"byteLength" : 765,
"calculated" : false,
"calculatedFormula" : null,
"cascadeDelete" : false,
"caseSensitive" : false,
"controllerName" : null,
"createable" : true,
"custom" : false,
"defaultValue" : null,
"defaultValueFormula" : null,
"defaultedOnCreate" : false,
"dependentPicklist" : false,
"deprecatedAndHidden" : false,
"digits" : 0,
"displayLocationInDecimal" : false,
"externalId" : false,
"extraTypeInfo" : null,
"filterable" : true,
"groupable" : true,
"htmlFormatted" : false,
"idLookup" : false,
"inlineHelpText" : null,
"label" : "Account Name",
"length" : 255,
159
Reference Get Compact Layouts Using sObject CompactLayouts
"mask" : null,
"maskType" : null,
"name" : "Name",
"nameField" : true,
"namePointing" : false,
"nillable" : false,
"permissionable" : false,
"picklistValues" : [ ],
"precision" : 0,
"queryByDistance" : false,
"referenceTo" : [ ],
"relationshipName" : null,
"relationshipOrder" : null,
"restrictedDelete" : false,
"restrictedPicklist" : false,
"scale" : 0,
"soapType" : "xsd:string",
"sortable" : true,
"type" : "string",
"unique" : false,
"updateable" : true,
"writeRequiresMasterRead" : false
},
"displayLines" : 1,
"tabOrder" : 2,
"type" : "Field",
"value" : "Name"
}],
"placeholder" : false,
"required" : false
},{
"editable" : false,
"label" : "Phone",
"layoutComponents" : [ {
"components" : [ ],
"details" : {
"autoNumber" : false,
"byteLength" : 120,
"calculated" : false,
"calculatedFormula" : null,
"cascadeDelete" : false,
"caseSensitive" : false,
"controllerName" : null,
"createable" : true,
"custom" : false,
"defaultValue" : null,
"defaultValueFormula" : null,
"defaultedOnCreate" : false,
"dependentPicklist" : false,
"deprecatedAndHidden" : false,
"digits" : 0,
"displayLocationInDecimal" : false,
"externalId" : false,
"extraTypeInfo" : null,
160
Reference Get Compact Layouts Using sObject CompactLayouts
"filterable" : true,
"groupable" : true,
"htmlFormatted" : false,
"idLookup" : false,
"inlineHelpText" : null,
"label" : "Account Phone",
"length" : 40,
"mask" : null,
"maskType" : null,
"name" : "Phone",
"nameField" : false,
"namePointing" : false,
"nillable" : true,
"permissionable" : true,
"picklistValues" : [ ],
"precision" : 0,
"queryByDistance" : false,
"referenceTo" : [ ],
"relationshipName" : null,
"relationshipOrder" : null,
"restrictedDelete" : false,
"restrictedPicklist" : false,
"scale" : 0,
"soapType" : "xsd:string",
"sortable" : true,
"type" : "phone",
"unique" : false,
"updateable" : true,
"writeRequiresMasterRead" : false
},
"displayLines" : 1,
"tabOrder" : 3,
"type" : "Field",
"value" : "Phone"
}],
"placeholder" : false,
"required" : false
}],
"id" : "0AHD000000000AbOAI",
"imageItems" : [ {
"editable" : false,
"label" : "Photo URL",
"layoutComponents" : [ {
"components" : [ ],
"details" : {
"autoNumber" : false,
"byteLength" : 765,
"calculated" : false,
"calculatedFormula" : null,
"cascadeDelete" : false,
"caseSensitive" : false,
"controllerName" : null,
"createable" : false,
"custom" : false,
161
Reference Get Compact Layouts Using sObject CompactLayouts
"defaultValue" : null,
"defaultValueFormula" : null,
"defaultedOnCreate" : false,
"dependentPicklist" : false,
"deprecatedAndHidden" : false,
"digits" : 0,
"displayLocationInDecimal" : false,
"externalId" : false,
"extraTypeInfo" : "imageurl",
"filterable" : true,
"groupable" : true,
"htmlFormatted" : false,
"idLookup" : false,
"inlineHelpText" : null,
"label" : "Photo URL",
"length" : 255,
"mask" : null,
"maskType" : null,
"name" : "PhotoUrl",
"nameField" : false,
"namePointing" : false,
"nillable" : true,
"permissionable" : false,
"picklistValues" : [ ],
"precision" : 0,
"queryByDistance" : false,
"referenceTo" : [ ],
"relationshipName" : null,
"relationshipOrder" : null,
"restrictedDelete" : false,
"restrictedPicklist" : false,
"scale" : 0,
"soapType" :
"xsd:string",
"sortable" : true,
"type" : "url",
"unique" : false,
"updateable" : false,
"writeRequiresMasterRead" : false
},
"displayLines" : 1,
"tabOrder" : 1,
"type" : "Field",
"value" : "PhotoUrl"
}],
"placeholder" : false,
"required" : false
}],
"label" : "Custom Account Compact Layout",
"name" : "Custom_Account_Compact_Layout"
}],
"defaultCompactLayoutId" :
"0AHD000000000AbOAI",
"recordTypeCompactLayoutMappings" : [ {
"available" : true,
162
Reference Return Headers Using sObject CompactLayouts
"compactLayoutId" : "0AHD000000000AbOAI",
"compactLayoutName" : "Custom_Account_Compact_Layout",
"recordTypeId" : "012000000000000AAA",
"recordTypeName" : "Master",
"urls" : {
"compactLayout" :
"/services/data/v57.0/sobjects/Account/describe/compactLayouts/012000000000000AAA"
}
}],
"urls" : {
"primary" : "/services/data/v57.0/sobjects/Account/describe/compactLayouts/primary"
}
}
If you haven’t defined any compact layouts for an object, the compactLayoutId returns as Null.
Syntax
URI
For a compact layout description for a specific object, use
/services/data/vXX.X/sobjects/sObject/describe/compactLayouts/
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
sObject Layouts
Retrieves lists of page layouts and their descriptions. You can request information for all of a specific object’s layouts or for
layouts associated with a specified record type on a specific object.
163
Reference Get Layouts and Descriptions for a Specified Object
IN THIS SECTION:
Get Layouts and Descriptions for a Specified Object
Retrieves lists of layouts and their descriptions for a single object.
Return Layout Headers for a Specified Object
Returns only the headers that are returned by a GET request to sObject Layouts resources. This gives you a chance to see header
values ahead of time before retrieving the content of the resource.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/layouts/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Battle_Station__c/describe
-H "Authorization: Bearer token"
{
"layouts" : [ {
"buttonLayoutSection" : {
"detailButtons" : [
...
]
},
"detailLayoutSections" : [
...
],
"editLayoutSections" : [
164
Reference Return Layout Headers for a Specified Object
...
],
"feedView" : null,
"highlightsPanelLayoutSection" : null,
"id" : "00ho000000BKMebAAH",
"multirowEditLayoutSections" : [ ],
"offlineLinks" : [ ],
"quickActionList" : {
"quickActionListItems" : [
...
]
},
"relatedContent" : null,
"relatedLists" : [
...
],
"saveOptions" : [ ]
}],
"recordTypeMappings" : [
...
],
"recordTypeSelectorRequired" : [ false ]
}
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/layouts/
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
165
Reference sObject Layouts for an Object With Multiple Record Types
Get Layouts and Descriptions for an Object With Multiple Record Types
Retrieves lists of layouts and their descriptions.
For a layout description for objects that have more than one record type defined, the recordTypeId can be obtained from the
result from
/services/data/vXX.X/sobjects/sObject/describe/layouts/
A GET request for objects that have more than one record type defined returns
null for the layouts section of the response.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/layouts/recordTypeId
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl
Chocolate__c
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/
/describe/layouts/0125c000000oIN9AAM
-H "Authorization: Bearer token"
{
"buttonLayoutSection" : {
"detailButtons" : [
...
]
},
"detailLayoutSections" : [
...
],
"editLayoutSections" : [
...
],
"feedView" : null,
"highlightsPanelLayoutSection" : null,
166
Reference Return Layout Headers for an Object With Multiple Record
Types
"id" : "00ho000000CUJWIAA5",
"multirowEditLayoutSections" : [ ],
"offlineLinks" : [ ],
"quickActionList" : {
"quickActionListItems" : [
...
]
},
"relatedContent" : null,
"relatedLists" : [
...
],
"saveOptions" : [ ]
}
Syntax
URI
/services/data/vXX.X/sobjects/sObject/describe/layouts/recordTypeId
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl -X HEAD
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Chocolate__c/describe/layo
-H "Authorization: Bearer token"
167
Reference Get Global Publisher Layouts and Descriptions
IN THIS SECTION:
Get Global Publisher Layouts and Descriptions
Retrieves lists of global publisher layouts and their descriptions. Global publisher layouts customize the actions on global pages (like
the Home page). In Lightning Experience, these layouts populate the Global Actions menu.
Return Headers for All Global Publisher Layouts
Returns only the headers that are returned by a GET request to sObject Layouts resources. This gives you a chance to see header
values ahead of time before retrieving the content of the resource.
Syntax
URI
/services/data/vXX.X/sobjects/Global/describe/layouts/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Global/describe/layouts/
-H "Authorization: Bearer token"
{
"layouts": [
{
"buttonLayoutSection": null,
"detailLayoutSections": [],
"editLayoutSections": [],
"feedView": null,
"highlightsPanelLayoutSection": null,
"id": "00hRO000000Mo6jYAC",
"multirowEditLayoutSections": [],
"offlineLinks": [],
"quickActionList": {
"quickActionListItems": [
168
Reference Return Headers for All Global Publisher Layouts
{
"accessLevelRequired": null,
"colors": [
{
"color": "65CAE4",
"context": "primary",
"theme": "theme4"
}
],
"iconUrl": null,
"icons": [
{
"contentType": "image/svg+xml",
"height": 0,
"theme": "theme4",
"url":
"https://rockyroads.test1.my.pc-rnd.salesforce.com/img/icon/t4v35/action/share_post.svg",
"width": 0
},
...
],
"label": "Post",
"miniIconUrl": "",
"quickActionName": "FeedItem.TextPost",
"targetSobjectType": null,
"type": "Post",
"urls": {}
},
...
]
},
"relatedContent": null,
"relatedLists": [],
"saveOptions": []
}
],
"recordTypeMappings": [],
"recordTypeSelectorRequired": [
false
]
}
Syntax
URI
/services/data/vXX.X/sobjects/Global/describe/layouts/
169
Reference sObject PlatformAction
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl -X HEAD
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Global/describe/layouts/
-H "Authorization: Bearer token"
sObject PlatformAction
Returns the description of the PlatformAction. PlatformAction is a virtual read-only object. It enables you to query for actions displayed
in the UI, given a user, a context, device format, and a record ID. Examples include standard and custom buttons, quick actions, and
productivity actions. This resource is available in API version 33.0 and later.
The only thing you can do with this resource is Query it.
Syntax
URI
/services/data/vXX.X/sobjects/PlatformAction
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None
SEE ALSO:
Object Reference for the Salesforce Platform
170
Reference Get sObject Quick Actions
IN THIS SECTION:
Get sObject Quick Actions
Returns a specific object’s actions as well as global actions. This resource is available in REST API version 28.0 and later.
Return Headers Using sObject Quick Actions
Returns only the headers that are returned by sending a GET request to the sObject Quick Actions resource. This gives you a chance
to see the header values before retrieving the content of the resource. This resource is available in REST API version 28.0 and later.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/quickActions/
-H "Authorization: Bearer token"
171
Reference sObject Specific Quick Actions
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
IN THIS SECTION:
Retrieve Specific sObject Quick Actions
Returns a specific action for an object, as well as the action’s details. This resource is available in REST API version 28.0 and later.
Create Records Using Specific sObject Quick Actions
Creates a record via the specified quick action based on the field values included in the request body. This resource is available in
REST API version 28.0 and later.
Return Headers Using Specific sObject Quick Actions
Returns only the headers that are returned by sending a GET request to the sObject Quick Actions resource. This gives you a chance
to see the header values before retrieving the content of the resource. This resource is available in REST API version 28.0 and later.
172
Reference Create Records Using Specific sObject Quick Actions
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/quickActions/Creat
-H "Authorization: Bearer token"
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName
Formats
JSON, XML
HTTP Method
POST
Authentication
Authorization: Bearer token
Parameters
None required
173
Reference Return Headers Using Specific sObject Quick Actions
Example
Example Request
curl -X POST
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/quick
Actions/CreateContact -H 'Authorization: Bearer token -H "Content-Type:
application/json" -d @newcontact.json'
Example Request Body
"contextId" : "001D000000JRSGf",
"record" : { "LastName" : "Smith" }
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
174
Reference Get sObject Quick Action Details
IN THIS SECTION:
Get sObject Quick Action Details
Returns a specific action’s descriptive detail. This resource is available in REST API version 28.0 and later.
Return Headers Using sObject Quick Action Details
Returns only the headers that are returned by sending a GET request to the sObject Quick Actions resource. This gives you a chance
to see the header values before retrieving the content of the resource. This resource is available in REST API version 28.0 and later.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName/describe/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/quickActions/Creat
-H "Authorization: Bearer token"
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName/describe/
Formats
JSON, XML
175
Reference sObject Quick Action Default Values
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
IN THIS SECTION:
Get sObject Quick Action Default Values
Returns a specific action’s default values, including field values. This resource is available in REST API version 28.0 and later.
Return Headers Using sObject Quick Action Default Values
Returns only the headers that are returned by sending a GET request to the sObject Quick Actions resource. This gives you a chance
to see the header values before retrieving the content of the resource. This resource is available in REST API version 28.0 and later.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName/defaultValues/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
176
Reference Return Headers Using sObject Quick Action Default Values
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/quickActions/Creat
-H "Authorization: Bearer token"
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName/defaultValues/
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
IN THIS SECTION:
Get sObject Quick Action Default Values by ID
Returns the default values for an action specific to the context_id object. This resource is available in REST API version 29.0 and
later.
177
Reference Get sObject Quick Action Default Values by ID
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName/defaultValues/contextId
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/quickActions/Creat
-H "Authorization: Bearer token"
Syntax
URI
/services/data/vXX.X/sobjects/sObject/quickActions/actionName/defaultValues/contextId
178
Reference sObject Rich Text Image Retrieve
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
Syntax
URI
XX.X/sobjects/sObject/id/richTextImageFields/
/services/data/v fieldName
/contentReferenceId
Formats
Binary data
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
179
Reference sObject Relationships
Parameter Description
contentReferenceId The reference ID that uniquely identifies an image within a rich text area field.
You can obtain the reference by retrieving information for the object. The description
shows the contents of the rich text area field. For example:
{
"attributes" : {
"type" : "Lead",
"url" :
"/services/data/v57.0/sobjects/Lead/00QRM000003ZfDb2AK"
},
"Id" : "00QRM000003ZfDb2AK",
...
"ContactPhoto__c" :
"Sarah Loehr and her two dogs.
<img alt=\"Sarah Loehr.\"
MyDomainName.file.force.com/servlet/rtaImage?
src=\"https://
eid=00QRM000003ZfDb&
feoid=00NRM000001E73j&
refid=0EMRM00000002Ip\"></img>"
}
Note: If you’re not using enhanced domains, your org’s My Domain URLs are
different. For details, see My Domain URL Formats in Salesforce Help.
Example
For an example of retrieving the blob data from a rich text area field, see Get an Image from a Rich Text Area Field on page 69.
SEE ALSO:
Object Reference for the Salesforce Platform
sObject Relationships
Accesses records by traversing object relationships via friendly URLs. You can retrieve, update, or delete the record associated with the
traversed relationship field. If there are multiple related records, you can retrieve the complete set of associated records. This resource
is available in REST API version 36.0 and later.
IN THIS SECTION:
Get Records Using sObject Relationships
Gets a record based on the specified object, record ID, and relationship field. The fields and field values of the record are returned
in the response body. If there are multiple related records, you can retrieve the complete set of associated records.
180
Reference Get Records Using sObject Relationships
and
Error Responses.
Syntax
URI
/services/data/vXX.X/sobjects/sObject/id/relationshipFieldName
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
relationshipFieldFame The name of the field that contains the relationship. For example,Opportunities.
fields Optional for GET. A comma-delimited list of fields in the associated relationship
record returned in the response body. For example:
/services/data/v57.0/sobjects/sObject/id/relationship
field?fields=field1,field2
Example
For examples of using sObject Relationships to access relationship fields, see Traverse Relationships with Friendly URLs.
181
Reference Update Records Using sObject Relationships
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Merchandise__c/a01D000000I
-H “Authorization: Bearer token”
{
"attributes" :
{
"type" : "Distributor__c",
"url" : "/services/data/v57.0/sobjects/Distributor__c/a03D0000003DUhcIAG"
},
"Id" : "a03D0000003DUhcIAG",
"OwnerId" : "005D0000001KyEIIA0",
"IsDeleted" : false,
"Name" : "Distributor1",
"CreatedDate" : "2011-12-16T17:43:01.000+0000",
"CreatedById" : "005D0000001KyEIIA0",
"LastModifiedDate" : "2011-12-16T17:43:01.000+0000",
"LastModifiedById" : "005D0000001KyEIIA0",
"SystemModstamp" : "2011-12-16T17:43:01.000+0000",
"Location__c" : "San Francisco"
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/id/relationshipFieldName
Formats
JSON, XML
HTTP Method
PATCH
Authentication
Authorization: Bearer token
182
Reference Delete Records Using sObject Relationships
Parameters
Parameter Description
relationshipFieldName The name of the field that contains the relationship. For example,Opportunities.
Example
For an example of updating a record using PATCH, see
Update a Record.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/sObject/id/relationshipFieldName
Formats
JSON, XML
HTTP Method
DELETE
Authentication
Authorization: Bearer token
Parameters
Parameter Description
relationshipFieldName The name of the field that contains the relationship. For example,Opportunities.
183
Reference sObjects Suggested Articles
Example
For examples of using sObject Relationships to delete a relationship record, see Traverse Relationships with Friendly URLs.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
XX.X
/services/data/v /sobjects/sObject/suggestedArticles
?language= articleLanguage &subject=subject
&description= description.
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None required
Request parameters
Parameter Description
articleTypes Optional. Three-character ID prefixes indicating the desired article types. You can specify
multiple values for this parameter in a single REST call, by repeating the parameter
name for each value.For example,
articleTypes=ka0&articleTypes=ka1.
categories Optional. The name of the data category group and the data category API name (not
category title) for desired articles. The syntax is
categories={"Group":"Category"}. Characters in the URL might need
to be encoded. For example:
categories=%7B%22Regions%22%3A%22Asia%22%2C%22
Products%22%3A%22Laptops%22%7D
184
Reference sObjects Suggested Articles
Parameter Description
The same data category group can’t be specified more than once. However, you can
specify multiple data category group and data category pairs. For example,
categories={"Regions":"Asia","Products":"Laptops"}.
description Text of the description. Valid only for new records without an existing ID and required
if
subject is null. Article suggestions are based on common keywords in the subject,
description, or both.
language Required. Language that the article is written in.
limit
Optional. Specifies the maximum number of suggested articles to return.
publishStatus Optional. The article’s publication status. Valid values:
• Draft
–Not published
• Online
–Published in Salesforce Knowledge
• Archived
subject Text of the subject. Valid only for new records without an existing ID and required if
description is null. Article suggestions are based on common keywords in the
subject, description, or both.
Optional. The topic of returned articles. For example:
topics
topics=outlook&topics=email.
Optional. The validation status of returned articles.
validationStatus
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Case/suggestedArticles?
language=en_US&subject=orange+banana&articleTypes=ka0&articleTypes=ka1
-H "Authorization: Bearer token"
[ {
"attributes" : {
"type" : "KnowledgeArticleVersion",
"url" : "/services/data/v57.0/sobjects/KnowledgeArticleVersion/ka0D00000004CcQ"
"Id" : "ka0D00000004CcQ"
},{
"attributes" : {
"type" : "KnowledgeArticleVersion",
"url" : "/services/data/v57.0/sobjects/KnowledgeArticleVersion/ka0D00000004CXo"
},
"Id" : "ka0D00000004CXo"
} ]
185
Reference sObjects Suggested Articles by ID
Syntax
URI
/services/data/vXX.X/sobjects/sObject/ID/suggestedArticles?language=articleLanguage
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None required
Request parameters
Parameter Description
articleTypes Optional. Three-character ID prefixes indicating the desired article types. You can specify
multiple values for this parameter in a single REST call, by repeating the parameter
name for each value.For example,
articleTypes=ka0&articleTypes=ka1.
categories Optional. The name of the data category group and the data category API name (not
category title) for desired articles. The syntax is
categories={"Group":"Category"}. Characters in the URL might need
to be encoded. For example:
categories=%7B%22Regions%22%3A%22Asia%22%2C%22
Products%22%3A%22Laptops%22%7D
The same data category group can’t be specified more than one time. However, you
can specify multiple data category group and data category pairs. For example,
categories={"Regions":"Asia","Products":"Laptops"}.
description Text of the description. Valid only for new records without an existing ID and required
if
subject is null. Article suggestions are based on common keywords in the subject,
description, or both.
language Required. Language that the article is written in.
186
Reference sObject User Password
Parameter Description
subject Text of the subject. Valid only for new records without an existing ID and required if
description is null. Article suggestions are based on common keywords in the
subject, description, or both.
Optional. The topic of returned articles. For example:
topics
topics=outlook&topics=email.
Optional. The validation status of returned articles.
validationStatus
Example
Example Response Body
[ {
"attributes" : {
"type" : "KnowledgeArticleVersion",
"url" : "/services/data/v57.0/sobjects/KnowledgeArticleVersion/ka0D00000004CcQ"
"Id" : "ka0D00000004CcQ"
},{
"attributes" : {
"type" : "KnowledgeArticleVersion",
"url" : "/services/data/v57.0/sobjects/KnowledgeArticleVersion/ka0D00000004CXo"
},
"Id" : "ka0D00000004CXo"
} ]
IN THIS SECTION:
Get User Password Expiration Status
Gets a user’s password expiration status based on the specified user ID. A True or False value is returned in the response body. This
resource is available in REST API version 24.0 and later.
Set User Password
Sets a user’s password based on the specified user ID. The password provided in the request body replaces the user’s existing
password. This resource is available in REST API version 24.0 and later.
187
Reference Get User Password Expiration Status
Syntax
URI
/services/data/vXX.X/sobjects/User/userId/password
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
188
Reference Reset User Password
Syntax
URI
/services/data/vXX.X/sobjects/User/userId/password
Formats
JSON, XML
HTTP Method
POST
Authentication
Authorization: Bearer token
Parameters
None required
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
link,
they can finish resetting their password by logging in with the temporary password.
If the session doesn’t have permission to access the user information, an INSUFFICIENT_ACCESS error is returned.
Syntax
URI
/services/data/vXX.X/sobjects/User/userId/password
Formats
JSON, XML
HTTP Method
DELETE
Authentication
Authorization: Bearer token
Parameters
None required
189
Reference Return Headers Using sObject User Password
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/User/userId/password
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
IN THIS SECTION:
Get Self-Service User Password Expiration Status
Retrieves a self-service user’s password expiration status based on the specified user ID. A True or False value is returned in the
response body. This resource is available in REST API version 24.0 and later.
190
Reference Get Self-Service User Password Expiration Status
Syntax
URI
/services/data/vXX.X/sobjects/SelfServiceUser/selfServiceUserId/password
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
191
Reference Reset Self-Service User Password
If the session doesn’t have permission to access the user information, an INSUFFICIENT_ACCESS error is returned.
Syntax
URI
/services/data/vXX.X/sobjects/SelfServiceUser/selfServiceUserId/password
Formats
JSON, XML
HTTP Method
POST
Authentication
Authorization: Bearer token
Parameters
None required
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
link,
they can finish resetting their password by logging in with the temporary password.
If the session doesn’t have permission to access the user information, an INSUFFICIENT_ACCESS error is returned.
Syntax
URI
/services/data/vXX.X/sobjects/SelfServiceUser/selfServiceUserId/password
Formats
JSON, XML
HTTP Method
DELETE
Authentication
Authorization: Bearer token
Parameters
None required
192
Reference Return Headers Using sObject Self-Service User Password
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
Syntax
URI
/services/data/vXX.X/sobjects/SelfServiceUser/selfServiceUserId/password
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
For examples of getting password information, setting a password, and resetting a password, see Manage User Passwords on page 79.
SEE ALSO:
Object Reference for the Salesforce Platform
193
Reference Platform Event Schema by Event Name
Syntax
URI
/services/data/vXX.X/sobjects/eventName/eventSchema
Formats
JSON
HTTP methods
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
payloadFormat (Optional query parameter. Available in API version 43.0 and later.) The format of the returned
event schema. This parameter can take one of the following values.
•
EXPANDED—The JSON representation of the event schema, which is the default format when
payloadFormat isn’t specified in API version 43.0 and later. The expanded event schema
is in the open-source Apache Avro format but doesn’t strictly adhere to the record complex
type. For more information about the schema fields, see Apache Avro Format.
•
COMPACT—The JSON representation of the event schema that adheres to the open-source
Apache Avro specification for the record complex type. For more information about the schema
fields, see Apache Avro Format. Subscribers use the compact schema format to deserialize
compact events received in binary form.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Low_Ink__e/eventSchema
-H "Authorization: Bearer token"
Or:
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Low_Ink__e/eventSchema?paylo
-H "Authorization: Bearer token"
The returned response for the expanded format looks like the following in API version 57.0.
{
"name": "Low_Ink__e",
"namespace": "com.sforce.eventbus",
"type": "expanded-record",
"fields": [
{
"name": "data",
194
Reference Platform Event Schema by Event Name
"type": {
"type": "record",
"name": "Data",
"namespace": "",
"fields": [
{
"name": "schema",
"type": "string"
},
{
"name": "payload",
"type": {
"type": "record",
"name": "Payload",
"doc": "",
"fields": [
{
"name": "CreatedDate",
"type": "string",
"doc": "CreatedDate:DateTime"
},
{
"name": "CreatedById",
"type": "string",
"doc": "CreatedBy:EntityId"
},
{
"name": "Printer_Model__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001krnv",
"default": null
},
{
"name": "Serial_Number__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001kro0",
"default": null
},
{
"name": "Ink_Percentage__c",
"type": [
"null",
"double"
],
"doc": "Data:Double:00NRM000001kro5",
"default": null
}
]
195
Reference Platform Event Schema by Event Name
}
},
{
"name": "event",
"type": {
"type": "record",
"name": "Event",
"fields": [
{
"name": "replayId",
"type": "long"
}
]
}
}
]
}
},
{
"name": "channel",
"type": "string"
}
]
}
To get the compact (Apache Avro) format, use the following URI.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Low_Ink__e/eventSchema?paylo
-H "Authorization: Bearer token"
The returned response for the compact format looks like the following in API version 57.0.
{
"name": "Low_Ink__e",
"namespace": "com.sforce.eventbus",
"type": "record",
"fields": [
{
"name": "CreatedDate",
"type": "long",
"doc": "CreatedDate:DateTime"
},
{
"name": "CreatedById",
"type": "string",
"doc": "CreatedBy:EntityId"
},
{
"name": "Printer_Model__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001krnv",
196
Reference Platform Event Schema by Event Name
"default": null
},
{
"name": "Serial_Number__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001kro0",
"default": null
},
{
"name": "Ink_Percentage__c",
"type": [
"null",
"double"
],
"doc": "Data:Double:00NRM000001kro5",
"default": null
}
],
"uuid": "5E5OtZj5_Gm6Vax9XMXH9A"
}
Note: The compact schema doesn’t include the replayId or channel fields because these fields aren’t necessary for
deserializing the compact event received.
Note: This format is what the API returns in API version 43.0 and later when appending the
?payloadFormat=COMPACT
parameter.
curl
https://MyDomainName.my.salesforce.com/services/data/v42.0/sobjects/Low_Ink__e/eventSchema
-H "Authorization: Bearer token"
The returned response looks like the following in API version 42.0.
{
"name": "Low_Ink__e",
"namespace": "com.sforce.eventbus",
"type": "record",
"fields": [
{
"name": "CreatedDate",
"type": "long",
"doc": "CreatedDate:DateTime"
},
{
"name": "CreatedById",
"type": "string",
"doc": "CreatedBy:EntityId"
197
Reference Platform Event Schema by Event Name
},
{
"name": "Printer_Model__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001krnv",
"default": null
},
{
"name": "Serial_Number__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001kro0",
"default": null
},
{
"name": "Ink_Percentage__c",
"type": [
"null",
"double"
],
"doc": "Data:Double:00NRM000001kro5",
"default": null
}
],
"uuid": "5E5OtZj5_Gm6Vax9XMXH9A"
}
Note: When you change the definition of a platform event, the schema ID for this platform event changes.
uuid field, which contains the schema’s ID. The ID is the MD5 fingerprint of the normalized Avro schema
encoded as a base-64 URL variant. You can append this ID to the
Reference Platform Event Schema by Schema ID
Syntax
URI
/services/data/vXX.X/event/eventSchema/schemaId
Formats
JSON
HTTP methods
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
payloadFormat (Optional query parameter. Available in API version 43.0 and later.) The format of the returned
event schema. This parameter can take one of the following values.
•
EXPANDED—The JSON representation of the event schema, which is the default format when
payloadFormat isn’t specified in API version 43.0 and later. The expanded event schema
is in the open-source Apache Avro format but doesn’t strictly adhere to the record complex
type. For more information about the schema fields, see Apache Avro Format.
•
COMPACT—The JSON representation of the event schema that adheres to the open-source
Apache Avro specification for the record complex type. For more information about the schema
fields, see Apache Avro Format. Subscribers use the compact schema format to deserialize
compact events received in binary form.
/services/data/v57.0/event/eventSchema/5E5OtZj5_Gm6Vax9XMXH9A
Or:
/services/data/v57.0/event/eventSchema/5E5OtZj5_Gm6Vax9XMXH9A?payloadFormat=EXPANDED
199
Reference Platform Event Schema by Schema ID
In API version 43.0 and later, the response format is the JSON representation of the event schema by default. The returned response
looks like the following in API version 57.0.
{
"name": "Low_Ink__e",
"namespace": "com.sforce.eventbus",
"type": "expanded-record",
"fields": [
{
"name": "data",
"type": {
"type": "record",
"name": "Data",
"namespace": "",
"fields": [
{
"name": "schema",
"type": "string"
},
{
"name": "payload",
"type": {
"type": "record",
"name": "Payload",
"doc": "",
"fields": [
{
"name": "CreatedDate",
"type": "string",
"doc": "CreatedDate:DateTime"
},
{
"name": "CreatedById",
"type": "string",
"doc": "CreatedBy:EntityId"
},
{
"name": "Printer_Model__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001krnv",
"default": null
},
{
"name": "Serial_Number__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001kro0",
"default": null
},
{
200
Reference Platform Event Schema by Schema ID
"name": "Ink_Percentage__c",
"type": [
"null",
"double"
],
"doc": "Data:Double:00NRM000001kro5",
"default": null
}
]
}
},
{
"name": "event",
"type": {
"type": "record",
"name": "Event",
"fields": [
{
"name": "replayId",
"type": "long"
}
]
}
}
]
}
},
{
"name": "channel",
"type": "string"
}
]
}
To get the compact (Apache Avro) format, use the following URI.
/services/data/v57.0/event/eventSchema/5E5OtZj5_Gm6Vax9XMXH9A?payloadFormat=COMPACT
The returned response for the compact format looks like the following in API version 57.0.
{
"name": "Low_Ink__e",
"namespace": "com.sforce.eventbus",
"type": "record",
"fields": [
{
"name": "CreatedDate",
"type": "long",
"doc": "CreatedDate:DateTime"
},
{
"name": "CreatedById",
"type": "string",
"doc": "CreatedBy:EntityId"
},
201
Reference Platform Event Schema by Schema ID
{
"name": "Printer_Model__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001krnv",
"default": null
},
{
"name": "Serial_Number__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001kro0",
"default": null
},
{
"name": "Ink_Percentage__c",
"type": [
"null",
"double"
],
"doc": "Data:Double:00NRM000001kro5",
"default": null
}
],
"uuid": "5E5OtZj5_Gm6Vax9XMXH9A"
}
Note: The compact schema doesn’t include the replayId or channel fields because these fields aren’t necessary for
deserializing the compact event received.
Note: This format is what the API returns in API version 43.0 and later when appending the
?payloadFormat=COMPACT
parameter.
This URI gets the schema of a platform event whose schema ID is
5E5OtZj5_Gm6Vax9XMXH9A. This schema ID is a sample ID.
Replace it with a valid schema ID for your event.
/services/data/v42.0/event/eventSchema/5E5OtZj5_Gm6Vax9XMXH9A
The returned response looks like the following in API version 42.0.
{
"name": "Low_Ink__e",
"namespace": "com.sforce.eventbus",
"type": "record",
"fields": [
{
"name": "CreatedDate",
202
Reference Platform Event Schema by Schema ID
"type": "long",
"doc": "CreatedDate:DateTime"
},
{
"name": "CreatedById",
"type": "string",
"doc": "CreatedBy:EntityId"
},
{
"name": "Printer_Model__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001krnv",
"default": null
},
{
"name": "Serial_Number__c",
"type": [
"null",
"string"
],
"doc": "Data:Text:00NRM000001kro0",
"default": null
},
{
"name": "Ink_Percentage__c",
"type": [
"null",
"double"
],
"doc": "Data:Double:00NRM000001kro5",
"default": null
}
],
"uuid": "5E5OtZj5_Gm6Vax9XMXH9A"
}
Note: When you change the definition of a platform event, the schema ID for this platform event changes.
If you don’t have the schema ID, you can get the schema by supplying the platform event name. Make a GET request to
/services/data/vXX.X/sobjects/eventName/eventSchema. See Platform Event Schema by Event N
– type indicates that the field can be either null or have a value of the specified type. When the field isn’t present, the value is
default.
–
doc describes the field data type and includes the field ID for custom fields. This field is intended for internal use. For example,
Salesforce uses the data type information to convert DateTime fields from long to DateTime. We recommend that you don't rely
on this field's value because it might change in the future.
The response also includes the
uuid field, which contains the schema’s ID. The ID is the MD5 fingerprint of the normalized Avro schema
encoded as a base-64 URL variant. You can append this ID to the
Retrieve AppMenu Types
/vXX.X/event/eventSchema/ URI to retrieve the schema.
Returns a list of App Menu types in the Salesforce app dropdown menu. This resource is available in REST API version 29.0 and later.
Syntax
URI
/services/data/vXX.X/appMenu/
Formats
JSON, XML
HTTP method
GET
Authentication
Authorization: Bearer token
Request body
None
Request parameters
None required
Example
Example Request
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/appMenu/ -H
"Authorization: Bearer token
"
AppMenu Items
Accesses App Menu items from the Salesforce app dropdown menu. To retrieve a list of App Menu items, use the GET method. To
retrieve the headers returned by a request for App Menu items, use the HEAD method.
IN THIS SECTION:
Return AppMenu Items
Returns a list of the App Menu items in the Salesforce Lightning dropdown menu. This resource is available in REST API version 29.0
and later.
204
Reference Return AppMenu Items
Syntax
URI
/services/data/vXX.X/appMenu/AppSwitcher/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None
Request parameters
None required
Example
Example Request
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/appMenu/AppSwitcher -H
"Authorization: Bearer token
"
Syntax
URI
/services/data/vXX.X/appMenu/AppSwitcher/
Formats
JSON, XML
HTTP method
HEAD
205
Reference AppMenu Mobile Items
Authentication
Authorization: Bearer token
Request body
None
Request parameters
None required
Example
Example Request
IN THIS SECTION:
Return AppMenu Mobile Items
Returns a list of the App Menu items in the Salesforce mobile app for Android and iOS and the mobile web navigation menu. This
resource is available in REST API version 29.0 and later.
Return Headers of AppMenu Mobile Item Requests
Returns only the headers that are returned by a GET request to the Salesforce mobile app for Android and iOS and the mobile web
navigation menu. Use this URI to see the header values before you retrieve the content of the resource. This resource is available in
REST API version 29.0 and later.
Syntax
URI
/services/data/vXX.X/appMenu/Salesforce1/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
206
Reference Return AppMenu Mobile Items
Request body
None
Request parameters
None required
Example
Example Request
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/appMenu/Salesforce1/ -
H"Authorization:Bearer " token
{
"appMenuItems" : [ {
"type" : "Standard.Search",
"content" : null,
"icons" : null,
"colors" : null,
"label" : "Smart Search Items",
"url" : "/search"
},{
"type" : "Standard.MyDay",
"content" : null,
"icons" : null,
"colors" : null,
"label" : "Today",
"url" : "/myDay"
},{
"type" : "Standard.Tasks",
"content" : null,
"icons" : null,
"colors" : null,
"label" : "Tasks",
"url" : "/tasks"
},{
"type" : "Standard.Dashboards",
"content" : null,
"icons" : null,
"colors" : null,
"label" : "Dashboards",
"url" : "/dashboards"
},{
"type" : "Tab.flexiPage",
"content" : "MySampleFlexiPage",
"icons" : [ {
"contentType" : "image/png",
"width" : 32,
"height" : 32,
"theme" : "theme3",
"url" : "http://myorg.com/img/icon/custom51_100/bell32.png"
},{
"contentType" : "image/png",
207
Reference Return AppMenu Mobile Items
"width" : 16,
"height" : 16,
"theme" : "theme3",
"url" : "http://myorg.com/img/icon/custom51_100/bell16.png"
},{
"contentType" : "image/svg+xml",
"width" : 0,
"height" : 0,
"theme" : "theme4",
"url" : "http://myorg.com/img/icon/t4/custom/custom53.svg"
},{
"contentType" : "image/png",
"width" : 60,
"height" : 60,
"theme" : "theme4",
"url" : "http://myorg.com/img/icon/t4/custom/custom53_60.png"
},{
"contentType" : "image/png",
"width" : 120,
"height" : 120,
"theme" : "theme4",
"url" : "http://myorg.com/img/icon/t4/custom/custom53_120.png"
}],
"colors" : [ {
"context" : "primary",
"color" : "FC4F59",
"theme" : "theme4"
},{
"context" : "primary",
"color" : "FC4F59",
"theme" : "theme3"
}],
"label" : "My App Home Page",
"url" : "/servlet/servlet.Integration?lid=01rxx0000000Vsd&ic=1"
},{
"type" : "Tab.apexPage",
"content" : "/apex/myapexpage",
"icons" : [ {
"contentType" : "image/png",
"width" : 32,
"height" : 32,
"theme" : "theme3",
"url" : "http://myorg.com/img/icon/cash32.png"
},{
"contentType" : "image/png",
"width" : 16,
"height" : 16,
"theme" : "theme3",
"url" : "http://myorg.com/img/icon/cash16.png"
},{
"contentType" : "image/svg+xml",
"width" : 0,
"height" : 0,
"theme" : "theme4",
208
Reference Return Headers of AppMenu Mobile Item Requests
"url" : "http://myorg.com/img/icon/t4/custom/custom41.svg"
},{
"contentType" : "image/png",
"width" : 60,
"height" : 60,
"theme" : "theme4",
"url" : "http://myorg.com/img/icon/t4/custom/custom41_60.png"
},{
"contentType" : "image/png",
"width" : 120,
"height" : 120,
"theme" : "theme4",
"url" : "http://myorg.com/img/icon/t4/custom/custom41_120.png"
}],
"colors" : [ {
"context" : "primary",
"color" : "3D8D8D",
"theme" : "theme4"
},{
"context" : "primary",
"color" : "3D8D8D",
"theme" : "theme3"
}],
"label" : "label",
"url" : "/servlet/servlet.Integration?lid=01rxx0000000Vyb&ic=1"
} ]
}
Syntax
URI
/services/data/vXX.X/appMenu/Salesforce1/
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request body
None
Request parameters
None required
209
Reference Compact Layouts
Example
Example Request
Compact Layouts
Returns a list of compact layouts for multiple objects. This resource is available in REST API version 31.0 and later.
This resource returns the primary compact layout for a set of objects. The set of objects is specified using a query parameter. Up to 100
objects can be queried at once.
Note: PersonAccount isn’t supported for bulk queries. If you want to get the primary compact layout for PersonAccount, get it
directly from
/services/data/v57.0/sobjects/Account/describe/compactLayouts/primaryPersonAccount.
Syntax
URI
/services/data/vXX.X/compactLayouts?q=objectList
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request parameters
Parameter Description
q A comma-delimited list of objects. The primary compact layout for each object in this
list will be returned in the response of this resource.
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/compactLayouts?q=Account,Contact,Cu
-H "Authorization: Bearer token"
{
"Account" : {
"actions" : [ {
210
Reference Compact Layouts
"behavior" : null,
"content" : null,
"contentSource" : null,
"custom" : false,
"encoding" : null,
"height" : null,
"icons" : null,
"label" : "Call",
"menubar" : false,
"name" : "CallHighlightAction",
"overridden" : false,
"resizeable" : false,
"scrollbars" : false,
"showsLocation" : false,
"showsStatus" : false,
"toolbar" : false,
"url" : null,
"width" : null,
"windowPosition" : null
},
...
"id" : "0AHD000000000AbOAI",
"label" : "Custom Account Compact Layout",
"name" : "Custom_Account_Compact_Layout"
},
"Contact" : {
"actions" : [ {
"behavior" : null,
"content" : null,
"contentSource" : null,
"custom" : false,
"encoding" : null,
"height" : null,
"icons" : null,
"label" : "Call",
"menubar" : false,
"name" : "CallHighlightAction",
"overridden" : false,
"resizeable" : false,
"scrollbars" : false,
"showsLocation" : false,
"showsStatus" : false,
"toolbar" : false,
"url" : null,
"width" : null,
"windowPosition" : null
},
...
"id" : null,
"label" : "System Default",
"name" : "SYSTEM"
}
"CustomObj__c" : {
"actions" : [ {
211
Reference Consent
"behavior" : null,
"content" : null,
"contentSource" : null,
"custom" : false,
"encoding" : null,
"height" : null,
"icons" : null,
"label" : "Call",
"menubar" : false,
"name" : "CallHighlightAction",
"overridden" : false,
"resizeable" : false,
"scrollbars" : false,
"showsLocation" : false,
"showsStatus" : false,
"toolbar" : false,
"url" : null,
"width" : null,
"windowPosition" : null
},
...
"id" : null,
"imageItems" : null,
"label" : "System Default",
"name" : "SYSTEM"
}
}
Consent
Your users can store consent preferences in different locations and possibly inconsistently. You can locate your customers’ preferences
for consent across multiple records when using API version 44.0 and later. Tracking consent preferences helps you and your users
respect the most restrictive requests. You can use the Consent API with specific Customer Data Platform parameters with API version
50.0 and later. See the syntax and parameters for Customer Data Platform in the following section.
Consent API aggregates consent settings across the Contact, Contact Point Type Consent, Data Use Purpose, Individual, Lead, Person
Account,
address and User objects when the records have a lookup relationship. The Consent API can't locate records in which the email
field is protected by Platform Encryption.
The API returns consent details based on a single action, like email or track. Starting with API version 45.0, the multiaction endpoint
allows you to request multiple actions in a single API call.
You can use the Consent API with specific Customer Data Platform parameters with API version 50.0 and later. Syntax and parameters
for Customer Data Platform are at the end of this topic.
/services/data/vXX.X/consent/multiaction?actions=list_of_actions&ids=list_of_Ids
(Available in API version 45.0 and later.)
212
Reference Consent
Formats
JSON
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None
Request parameters
Parameter Description
actions Comma-separated list of proposed actions. This required parameter applies only to
the multiaction endpoint.
This parameter is available in API version 45.0 and later.
If this parameter is used,
action can't be used.
213
Reference Consent
• portability
• process
• profile
• shouldforget
• social
• solicit
• storepiielsewhere
• track
• web
is used,
If action
actions can't be used.
Note: When you select email as the action, the API only aggregates consent for records that contain the same email address.
If the record ID specified in the URI is associated with a record that contains a different email address, the consent settings of
the associated record aren’t included in the API response.
Examples
Simple URI structure
/services/data/v57.0/consent/action/track?ids=003xx000004TxyY,00Qxx00000syyO,003zz000004zzZ
/services/data/v57.0/consent/multiaction?actions=track,geotrack,email&ids=003xx000008TiyY,00Qxx0000
Email addresses as IDs, specified purpose and timespan, and a verbose response
/services/data/v57.0/consent/action/[email protected],[email protected]&datetime=
Response
{
"[email protected]" : {
"result" : "Success",
"proceed" : {
"email" : "true"
"emailResult" : "Success"
},
"explanation" : [ {
"objectConsulted" : "ContactTypePointConsent",
"status" : "opt_in",
"purpose" : "billing",
"recordId" : "003xx000004TxyY",
"value" : "true"
},{
"objectConsulted" : "Contact",
"field" : "HasOptedOutOfTracking",
"recordId" : "1",
"value" : "true"
}]
},
"[email protected]" : {
214
Reference Consent
"result" : "Success",
"proceed" : {
"email" : "false"
"emailResult" : "Success"
},
"explanation" : [ {
"objectConsulted" : "Contact",
"field" : "HasOptedOutOfEmail",
"recordId" : "00Qxx00000skwO",
"value" : "true"
} ]
}
}
Security
To call Consent API, you must have either the View All Data or the Allow User Access to Privacy Data user permission. Requiring a perm
ensures that the System Administrator gives explicit permission. This API accesses org-wide consent data, such as links between
records and the value of consent flags, not just records to which the user ordinarily has access.
Usage
The following table shows how the API responses are determined. If the consulted fields find conflicting consent preferences, the
response returns the least permissive preference. For example, if Contact.HasOptedOutOfEmail is
false, but Lead.HasOptedOutOfEmail is true,
the response indicates that you can’t proceed with emailing the user.
When you select email as the action, the API only aggregates consent for records that contain the same email address. If the record ID
specified in the URI is associated with a record that contains a different email address, the consent settings of the associated record
aren’t included in the API response.
Note: When the API compares consent settings across records, it doesn’t incorporate settings from converted leads.
215
Reference Consent
216
Reference Consent
217
Reference Consent
storepiielsewhere
DataUsePurpose.NameReturns TRUE if the {
Individual.CanStorePiiElsewhereconsulted field value is "<ID/Email>" :
1.
{
Returns FALSE if the
"result" : "<Success/errormessage>",
consulted field value is
0 or if no related "proceed" : { "storePIIElsewhereResult" :
Individual object exists. "<Success/errormessage>", "storepiielsewhere" :
"<true/false>" }
}
}
218
Reference Use the Consent API with Customer Data Platform
}
}
Required Permissions
To use Customer Data Platform parameters for Consent API, you must have either the ModifyAllData or the ConsentApiUpdate user
permission. Requiring a perm ensures that the Salesforce admin gives explicit permission. These parameters write org-wide consent
data, such as links between records and the value of consent flags, which are usually inaccessible to non-admin users.
Action Description
Processing This action is used to restrict processing of data in Customer Data Platform processes such as
query, segmentation and so on.
Portability This action is used to allow export of Customer Data Platform profile data.
Shouldforget This action indicates right to be forgotten, which means delete my PII (Personally Identifiable
Information) data and any related records.
219
Reference Use the Consent API with Customer Data Platform
Syntax
HTTP method
GET
Available since release:
48.0
URI
Note: You can access the consent API using three different URIs based on the Action. The Actions supported are
processing,
, and
portability
shouldforget.
/services/data/vXX.X/consent/action/processing?ids=<list_of_ids>&mode=<cdp>
/services/data/vXX.X/consent/action/portability?ids=<list_of_ids>&mode=<cdp>
/services/data/vXX.X/consent/action/shouldforget?ids=<list_of_ids>&mode=<cdp>
Request parameters
Parameter Description
ids Required. Comma-separated list of IDs. The ID can be the record ID or the email address
listed on the record. When mode is set to cdp, the ids value is a string equal to the
Individual ID attribute. This is the email address used to sync consent.
Optional. Default is normal. Valid value to retrieve a CDP profile is
mode
cdp.
Syntax
HTTP method
PATCH
Available since release
50.0
220
Reference Use the Consent API with Customer Data Platform
Parameter Description
ids Required. Comma-separated list of IDs. The ID can be the record ID or the email
address listed on the record. When mode is cdp, the ids value is a string equal to the
Individual ID attribute. This is the email address used to sync consent.
Optional. Default is normal. Valid value to use for updating a CDP profile is
mode
cdp.
status Required. Status of the consent. Allowed values are optin or optout. However, when
action is processing use status as
optout.
Parameter Description
ids Required. Comma-separated list of IDs. The ID can be the record ID or the email
address listed on the record. When mode is cdp, the ids value is a string equal to the
Individual ID attribute. This is the email address used to sync consent.
Optional. Default is normal. Valid value to use for updating a CDP profile is
mode
cdp.
status Required. Status of the consent. Allowed values are optin or optout. However, when
action
optin. is shouldforget use status as
Parameter Description
ids Required. Comma-separated list of IDs. The ID can be the record ID or the email
address listed on the record. When mode is cdp, the ids value is a string equal to the
Individual ID attribute. This is the email address used to sync consent.
Optional. Default is normal. Valid value to use for updating a CDP profile is
mode
cdp.
status Required. Status of the consent. Allowed values are optin or optout. When action is
portability use status as
optin.
221
Reference Consent Write
Parameter Description
aws_s3_bucket_id Required only when mode is 'cdp' and the action is 'portability'. This parameter must
be passed in as part of the PATCH request body. This parameter is used to pass the S3
bucket location for portability requests to Customer Data Platform.
Required only when mode is 'cdp' and the action is 'portability'. This parameter must
aws_access_key_id
be passed in as part of the PATCH request body. This parameter is used to pass the S3
bucket access key for portability requests to Customer Data Platform.
aws_secret_access_key Required only when mode is 'cdp' and the action is 'portability'. This parameter must
be passed in as part of the PATCH request body. This parameter is used to pass the S3
bucket secret access key for portability requests to Customer Data Platform.
aws_s3_folder Required only when mode is 'cdp' and the action is 'portability'. This parameter must
be passed in as part of the PATCH request body. This parameter is used to pass the S3
bucket folder for portability requests to Customer Data Platform.
Required only when mode is 'cdp' and the action is 'portability'. This parameter must
aws_region
be passed in as part of the PATCH request body. This parameter is used to pass the S3
bucket's aws region for portability requests to Customer Data Platform.
/services/data/v57.0/consent/action/processing?
ids=100000695&mode=cdp&status=optout body: {}
/services/data/v57.0/consent/action/portability?ids=100000695&mode=cdp&status=optin
body:{
"aws_s3_bucket_id" : "cdpgdprtest",
"aws_access_key_id": "AKIAS4AK7TBJBHUPOBEI",
"aws_secret_access_key": "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",
"aws_s3_folder": "yyun/Person",
"aws_region": "us-west-1"
}
/services/data/v57.0/consent/action/shouldforget?ids=100000695
&mode=cdp&status=optin body: {}
Consent Write
Your users can store consent preferences in different locations. The Consent Write API can update and write consent across multiple
records through a single API call, helping you sync consent across records or populate the new Consent data model. This resource is
available in REST API version 48.0 and later.
222
Reference Consent Write
Consent API writes consent values across the Contact, Contact Point Type Consent, Data Use Purpose, Individual, Lead, Person Account,
and User objects when the records have a lookup relationship or share an email address. This API can also write to the Customer Data
Platform Individual record. The Consent API can't locate records in which the email address field is protected by Platform Encryption.
Note: For the Spring ‘21 release, the API only takes in a single email address. Any record with a matching email address is updated
based on the parameters set in the API call.
All records with the email address listed are updated. If the Create Individual parameter is selected and no Individual record exists, the
API creates an Individual record. If warranted, the API also creates a Contact Point Type Consent and Contact Point Email record.
Only Customer Data Platform uses the request body. If not passing anything in the request body, pass in an empty object {}.
Syntax
URI
/services/data/vXX.X/consent/action/action?ids=listOfIds
Formats
JSON
HTTP methods
PATCH
Authentication
Authorization: Bearer token
Request parameters
Parameter Description
blobParam Optional. Use to pass information to Customer Data Platform, such as portability
write location. Use only for
mode=cdp. This parameter must be passed in as part of the
PATCH request body.
captureDate Optional. The date and time when consent is captured. The default is the date and
time the API call is made.
captureContactPointType Optional. Describes how consent is captured (web, phone, email). Supported values
are:
• email
• phone
•(default)
web
captureSource Optional. The source through which consent is captured. The default capture source
is Consent API. Max length 255 characters.
Optional. Use to set the name for any new consent records. Default is:
consentName
Individual
Name-Datetime(<Name>2019-03-31T15:47:57). Max length is
255 characters.
createIndividual Optional. Boolean. If set to
true and the API call includes an email address that
matches multiple records without an Individual object, then an Individual object is
created. Any consent records with an email address that match the email in the API
call are linked to the new Individual object. If multiple records are found, then any
223
Reference Consent Write
Parameter Description
records not linked to an Individual object is linked to the Individual object found in the
other records. If more than one Individual object is found on the matching records,
then the call is rejected.
Optional. The date and time that the double opt-in is completed, formatted as described
doubleOptIn
in Valid Date and DateTime Formats.
Optional. The date from which consent is effective, formatted as described in Valid
effectiveFrom
Date and DateTime Formats. The default is the date the API call is made.
Optional. The date through which consent is effective, formatted as described in Valid
effectiveTo Date and DateTime Formats.
Required. The email address used to sync consent. The ID can be the record ID or the
ids email address
mode=cdp, thelisted on the
ID value is arecord. When
string equal
to the Individual ID attribute.
Optional. The name of the person in an Individual record. If a name isn’t provided for
individualName a new Individual record, then the local part of the passed-in email address is used. Max
length is 80 characters.
Optional. Default is
mode normal. The allowed modes are: normal or cdp. With
mode=cdp, the request is passed to the Customer Data Platform data platform to
get or writeparameter
mode=cdp consent. The
only supports the action,
blobParam, and ids parameters.
purposeName Optional. The data use purpose for which consent is provided. Must use an existing
data use purpose that you previously created. If more than one purpose with the same
name exists, only one purpose is selected.
status Required. Status of the consent (
OptIn, OptOut, Seen, NotSeen.) If action exists
on an Individual object (for example, tracking or processing), the only valid values are
OptIn and OptOut.
Action
Allowed values are:
• email
•fax
• geotrack
• mailing
• phone
• portability
• process
• profile
• shouldForget
• social
• solicit
224
Reference Embedded Service Configuration Describe
• storePiiElsewher
• e track
• web
Security
To call the Consent Write API, you must have either the ModifyAllData or the ConsentApiUpdate user permission. This API writes org-
wide consent data, such as links between records and the value of consent flags, and not just records to which the user ordinarily has
access. The ConsentApiUpdate user permission grants full write permission to the user during the Consent Write API call.
Example
Example Request
curl -X PATCH
https://MyDomainName.my.salesforce.com/services/data/v57.0/consent/action/<action>?ids=<email-
-H "Content-Type: application/json" -d "@exampleRequestBody.json"
{}
{
"<email-OR-recordID>" : {
"result" : "Success",
"edited" : [{
"objectType" : "<Contact, Lead, User, etc.>",
"field" : "<HasOptedOutofFax, DoNotCall,etc>",
"valueOfField" : "<true/false>",
"id" : "<recordID>"
}],
}
}
IN THIS SECTION:
Retrieve Embedded Service Configuration
Retrieves the values for your Embedded Service deployment configuration, including the branding colors, font, and site URL. This
resource is available in REST API version 45.0 and later.
Return Headers for Embedded Service Configuration
Returns only the headers from a GET request to the Embedded Service Configuration Describe resource. This gives you a chance to
see header values ahead of time before retrieving the content of the resource. You must be logged in to the account that owns the
EmbeddedServiceConfigDeveloperName you are querying. This resource is available in REST API version 45.0 and later.
225
Reference Retrieve Embedded Service Configuration
Syntax
URI
XX.X/support/embeddedservice/configuration/
/services/data/v embeddedServiceConfigDeveloperName
Formats
JSON
HTTP method
GET
Authentication
Authorization: Bearer token
Request parameters
None
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/support/embeddedservice/configurati
-H "Authorization: Bearer token"
{
"embeddedServiceConfig" : {
"areGuestUsersAllowed" : false,
"authMethod" : "CustomLogin",
"embeddedServiceBranding" : {
"contrastInvertedColor" : "#ffffff",
"contrastPrimaryColor" : "#333333",
"font" : "Salesforce Sans",
"height" : 498,
"navBarColor" : "#222222",
"primaryColor" : "#222222",
"secondaryColor" : "#005290",
"width" : 320
},
"embeddedServiceLiveAgent" : {
"avatarImg" : "",
"embeddedServiceQuickActions" : [ {
"order" : 1,
"quickActionDefinition" : "Snapins_Case_OfflineCaseQuickAction_08hRM00000000cC",
"quickActionType" : "OfflineCase"
},{
226
Reference Return Headers for Embedded Service Configuration
"order" : 1,
"quickActionDefinition" : "Snapins_Contact_PrechatQuickAction_08hRM00000000RC",
"quickActionType" : "Prechat"
},{
"order" : 2,
"quickActionDefinition" : "Snapins_Case_PrechatQuickAction_08hRM00000000RC",
"quickActionType" : "Prechat"
}],
"enabled" : true,
"fontSize" : "Medium",
"headerBackgroundImg" : "https://google.com/img/headerBgImgUrl.png",
"isOfflineCaseEnabled" : true,
"isQueuePositionEnabled" : true,
"liveChatButton" : "573RM0000004GGf",
"liveChatDeployment" : "572RM0000004CDV",
"offlineCaseBackgroundImg" : "https://google.com/img/offlineBgImgUrl.png",
"prechatBackgroundImg" : "https://google.com/img/prechatBgImgUrl.png",
"prechatEnabled" : true,
"scenario" : "Service",
"smallCompanyLogoImg" : "https://google.com/img/logoImgUrl.png",
"waitingStateBackgroundImg" : "https://google.com/img/bgImgUrl.png"
},
"shouldHideAuthDialog" : false,
"siteUrl" : "https://snapins-15f082fb956-15fbc261d27.stmfa.stm.force.com/napili2"
}
}
Syntax
URI
XX.X/support/embeddedservice/configuration/
/services/data/v embeddedServiceConfigDeveloperName
Formats
JSON
HTTP method
HEAD
Authentication
Authorization: Bearer token
Request parameters
None
227
Reference Invocable Actions
Invocable Actions
Represents standard and custom invocable actions. Use actions to add more functionality to your applications. Choose from standard
actions, such as posting to Chatter or sending email, or create actions based on your company’s needs.
IN THIS SECTION:
Get Invocable Actions
Gets standard and custom invocable action URIs from Salesforce. This resource is available in REST API version 32.0 and later.
Return HTTP Headers for Invocable Actions
Returns only the headers that are returned by sending a GET request to the invocable actions resource. This gives you a chance to
see returned header values of the GET request before retrieving the content. This resource is available in REST API version 32.0 and
later.
Example
URI
/services/data/vXX.X/actions
Formats
JSON, XML
HTTP Methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
{
"standard" : "/services/data/v57.0/actions/standard",
"custom" : "/services/data/v57.0/actions/custom"
}
228
Reference Return HTTP Headers for Invocable Actions
Example
Example Request
HTTP/1.1 200 OK
Date: Mon, 21 Nov 2022 22:56:26 GMT
IN THIS SECTION:
Get Custom Invocable Actions
Gets the list of all custom invocable actions. Some actions require special access. This resource is available in REST API version 32.0
and later.
Return HTTP Headers for Custom Invocable Actions
Returns only the headers that are returned by sending a GET request to the custom invocable actions resource. This gives you a
chance to see returned header values of the GET request before retrieving the content. This resource is available in REST API version
32.0 and later.
Allocations
for Email Alerts” in Salesforce Help.
229
Reference Get Custom Invocable Actions
When invoking an Apex action using the POST method and supplying the inputs in the request, only the following primitive types are
supported as inputs:
• Blob
• Boolean
• Date
• Datetime
• Decimal
• Double
• ID
• Integer
• Long
• String
• Time
Describe and invoke for an Apex action respect the profile access for the Apex class. If you don’t have access, an error is issued.
If you add an Apex action to a flow, and then remove the Invocable Method annotation from the Apex class, a runtime error in the flow
occurs.
When a flow user invokes an autolaunched flow, the active flow version runs. If there’s no active version, the latest version runs. When
a flow admin invokes a flow, the latest version always runs.
If any of these elements are used in a flow, packageable components that reference the elements aren’t automatically included in the
package.
•Apex action
•Email alerts
•Post to Chatter core action
•Quick Action core action
•Send Email core action
•Submit for Approval core action
For example, if you use an email alert, manually add the email template that’s used by that email alert. To deploy the package successfully,
manually add those referenced components to the package.
For more information about actions, see the Actions Developer Guide.
Syntax
URI
/services/data/vXX.X/actions/custom
Formats
JSON, XML
HTTP Methods
GET
Authentication
Authorization: Bearer token
230
Reference Return HTTP Headers for Custom Invocable Actions
Request parameters
None required
Example
Example Request
{
"quickAction" : "/services/data/v57.0/actions/custom/quickAction",
"apex" : "/services/data/v57.0/actions/custom/apex",
"emailAlert" : "/services/data/v57.0/actions/custom/emailAlert",
"flow" : "/services/data/v57.0/actions/custom/flow",
"sendNotification" : "/services/data/v57.0/actions/custom/sendNotification"
}
Example
Example Request
HTTP/1.1 200 OK
Date: Mon, 21 Nov 2022 22:56:26 GMT
231
Reference Invocable Actions Standard
IN THIS SECTION:
Get Standard Invocable Actions
Gets the list of standard invocable actions that are provided by Salesforce. Some actions require special access. This resource is
available in REST API version 32.0 and later.
Return HTTP Headers for Standard Invocable Actions
Returns only the headers that are returned by sending a GET request to the standard invocable actions resource. This gives you a
chance to see returned header values of the GET request before retrieving the content. This resource is available in REST API version
32.0 and later.
endpoints
or Apex ConnectApi methods. For more information, see Salesforce Omnichannel Inventory Resources and Salesforce Order
Management
Resources in the Connect REST API Developer Guide, and ConnectApi Namespace in the Apex Reference Guide.
The Post to Chatter action supports the following features using a special format in the body post.
•@mentions using
@[<id>]
•Topic links using
#[<topicString>]
For example, the string
Syntax Hi@[005000000000001],checkout#[some_topic] is stored appropriately as Hi@Joe,
checkout#some_topic where “@Joe” and “#some_topic” are links to the user and topic, respectively.
URI
For more information about actions, see the Actions Developer Guide.
/services/data/vXX.X/actions/standard
Formats
JSON, XML
HTTP Methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
232
Reference Get Standard Invocable Actions
Example
Example Request
{
"actions" : [ {
"label" : "Post to Chatter",
"name" : "chatterPost",
"type" : "CHATTERPOST",
"url" : "/services/data/v57.0/actions/standard/chatterPost"
},{
"label" : "Enable Folder Support for a Content Workspace (Library)",
"name" : "contentWorkspaceEnableFolders",
"type" : "CONTENTWORKSPACE_ENABLE_FOLDERS",
"url" : "/services/data/v57.0/actions/standard/contentWorkspaceEnableFolders"
},{
"label" : "Send Email",
"name" : "emailSimple",
"type" : "EMAILSIMPLE",
"url" : "/services/data/v57.0/actions/standard/emailSimple"
},{
"label" : "Submit for Approval",
"name" : "submit",
"type" : "SUBMITAPPROVAL",
"url" : "/services/data/v57.0/actions/standard/submit"
},{
"label" : "Deactivate Session-Based Permission Set",
"name" : "deactivateSessionPermSet",
"type" : "DEACTIVATE_SESSION_PERM_SET",
"url" : "/services/data/v57.0/actions/standard/deactivateSessionPermSet"
},{
"label" : "Activate Session-Based Permission Set",
"name" : "activateSessionPermSet",
"type" : "ACTIVATE_SESSION_PERM_SET",
"url" : "/services/data/v57.0/actions/standard/activateSessionPermSet"
},{
"label" : "Choose Price Book",
"name" : "choosePricebook",
"type" : "CHOOSE_PRICEBOOK",
"url" : "/services/data/v57.0/actions/standard/choosePricebook"
},{
"label" : "Routing Address Verification",
"name" : "routingAddressVerification",
"type" : "ROUTING_ADDRESS_VERIFICATION",
"url" : "/services/data/v57.0/actions/standard/routingAddressVerification"
},{
"label" : "Create Customer Contact Request",
"name" : "contactRequestAction",
"type" : "CONTACT_REQUEST_ACTION",
"url" : "/services/data/v57.0/actions/standard/contactRequestAction"
233
Reference Return HTTP Headers for Standard Invocable Actions
},{
"label" : "Publish Managed Content Release",
"name" : "managedContentReleasePublish",
"type" : "MANAGED_CONTENT_RELEASE_PUBLISH",
"url" : "/services/data/v57.0/actions/standard/managedContentReleasePublish"
} ]
}
Syntax
URI
/services/data/vXX.X/actions/standard
Formats
JSON, XML
HTTP Methods
HEAD
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
HTTP/1.1 200 OK
Date: Mon, 21 Nov 2022 22:56:26 GMT
234
Reference List View Describe
Formats
JSON, XML
HTTP Methods
GET
Authentication
Authorization: Bearer token
Parameters
None
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/listviews/00BD0000
-H "Authorization: Bearer token"
{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK/describe",
"developerName" : "NewThisWeek",
"id" : "00BD0000005WcBeMAK",
"label" : "New This Week",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK"
}
235
Reference List View Describe
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/listviews/00BD0000
-H "Authorization: Bearer token"
{
"columns" : [ {
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "Name",
"hidden" : false,
"label" : "Account Name",
"selectListItem" : "Name",
"sortDirection" : "ascending",
"sortIndex" : 0,
"sortable" : true,
"type" : "string"
},{
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "Site",
"hidden" : false,
"label" : "Account Site",
"selectListItem" : "Site",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "string"
},{
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "BillingState",
"hidden" : false,
"label" : "Billing State/Province",
"selectListItem" : "BillingState",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "string"
},{
"ascendingLabel" : "9-0",
"descendingLabel" : "0-9",
"fieldNameOrPath" : "Phone",
"hidden" : false,
"label" : "Phone",
"selectListItem" : "Phone",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "phone"
236
Reference List View Describe
},{
"ascendingLabel" : "Low to High",
"descendingLabel" : "High to Low",
"fieldNameOrPath" : "Type",
"hidden" : false,
"label" : "Type",
"selectListItem" : "toLabel(Type)",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "picklist"
},{
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "Owner.Alias",
"hidden" : false,
"label" : "Account Owner Alias",
"selectListItem" : "Owner.Alias",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "string"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "Id",
"hidden" : true,
"label" : "Account ID",
"selectListItem" : "Id",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : false,
"type" : "id"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "CreatedDate",
"hidden" : true,
"label" : "Created Date",
"selectListItem" : "CreatedDate",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : false,
"type" : "datetime"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "LastModifiedDate",
"hidden" : true,
"label" : "Last Modified Date",
"selectListItem" : "LastModifiedDate",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : false,
237
Reference List View Results
"type" : "datetime"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "SystemModstamp",
"hidden" : true,
"label" : "System Modstamp",
"selectListItem" : "SystemModstamp",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : false,
"type" : "datetime"
}],
"id" : "00BD0000005WcBe",
"orderBy" : [ {
"fieldNameOrPath" : "Name",
"nullsPosition" : "first",
"sortDirection" : "ascending"
},{
"fieldNameOrPath" : "Id",
"nullsPosition" : "first",
"sortDirection" : "ascending"
}],
"query" : "SELECT name, site, billingstate, phone, tolabel(type), owner.alias, id,
createddate, lastmodifieddate, systemmodstamp FROM Account WHERE CreatedDate = THIS_WEEK
ORDER BY Name ASC NULLS FIRST, Id ASC NULLS FIRST",
"scope" : null,
"sobjectType" : "Account",
"whereCondition" : {
"field" : "CreatedDate",
"operator" : "equals",
"values" : [ "THIS_WEEK" ]
}
}
Syntax
URI
/services/data/vXX.X/sobjects/sObject/listviews/listViewID/results
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
238
Reference List View Results
Parameters
Parameter Description
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/listviews/00BD0000
-H "Authorization: Bearer token"
{
"columns" : [ {
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "Name",
"hidden" : false,
"label" : "Account Name",
"selectListItem" : "Name",
"sortDirection" : "ascending",
"sortIndex" : 0,
"sortable" : true,
"type" : "string"
},{
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "Site",
"hidden" : false,
"label" : "Account Site",
"selectListItem" : "Site",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "string"
},{
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "BillingState",
"hidden" : false,
"label" : "Billing State/Province",
"selectListItem" : "BillingState",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
239
Reference List View Results
"type" : "string"
},{
"ascendingLabel" : "9-0",
"descendingLabel" : "0-9",
"fieldNameOrPath" : "Phone",
"hidden" : false,
"label" : "Phone",
"selectListItem" : "Phone",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "phone"
},{
"ascendingLabel" : "Low to High",
"descendingLabel" : "High to Low",
"fieldNameOrPath" : "Type",
"hidden" : false,
"label" : "Type",
"selectListItem" : "toLabel(Type)",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "picklist"
},{
"ascendingLabel" : "Z-A",
"descendingLabel" : "A-Z",
"fieldNameOrPath" : "Owner.Alias",
"hidden" : false,
"label" : "Account Owner Alias",
"selectListItem" : "Owner.Alias",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : true,
"type" : "string"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "Id",
"hidden" : true,
"label" : "Account ID",
"selectListItem" : "Id",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : false,
"type" : "id"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "CreatedDate",
"hidden" : true,
"label" : "Created Date",
"selectListItem" : "CreatedDate",
"sortDirection" : null,
"sortIndex" : null,
240
Reference List View Results
"sortable" : false,
"type" : "datetime"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "LastModifiedDate",
"hidden" : true,
"label" : "Last Modified Date",
"selectListItem" : "LastModifiedDate",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : false,
"type" : "datetime"
},{
"ascendingLabel" : null,
"descendingLabel" : null,
"fieldNameOrPath" : "SystemModstamp",
"hidden" : true,
"label" : "System Modstamp",
"selectListItem" : "SystemModstamp",
"sortDirection" : null,
"sortIndex" : null,
"sortable" : false,
"type" : "datetime"
}],
"developerName" : "MyAccounts",
"done" : true,
"id" : "00BD0000005WcCN",
"label" : "My Accounts",
"records" : [ {
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "Burlington Textiles Corp of America"
},{
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "NC"
},{
"fieldNameOrPath" : "Phone",
"value" : "(336) 222-7000"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Direct"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSTIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
241
Reference List View Results
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
},{
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "Dickenson plc"
},{
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "KS"
},{
"fieldNameOrPath" : "Phone",
"value" : "(785) 241-6200"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Channel"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSVIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
},{
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "Edge Communications"
},{
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "TX"
},{
"fieldNameOrPath" : "Phone",
"value" : "(512) 757-6000"
},{
"fieldNameOrPath" : "Type",
242
Reference List View Results
243
Reference List View Results
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "CA"
},{
"fieldNameOrPath" : "Phone",
"value" : "(650) 867-3450"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Channel"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSPIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
},{
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "Grand Hotels and Resorts Ltd"
},{
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "IL"
},{
"fieldNameOrPath" : "Phone",
"value" : "(312) 596-1000"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Direct"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSWIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
244
Reference List View Results
245
Reference List View Results
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSaIAJ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
},{
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "United Oil and Gas Corp."
},{
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "NY"
},{
"fieldNameOrPath" : "Phone",
"value" : "(212) 842-5500"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Direct"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSZIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
},{
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "United Oil and Gas, Singapore"
},{
"fieldNameOrPath" : "Site",
"value" : null
246
Reference List View Results
},{
"fieldNameOrPath" : "BillingState",
"value" : "Singapore"
},{
"fieldNameOrPath" : "Phone",
"value" : "(650) 450-8810"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Direct"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSRIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
},{
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "United Oil and Gas, UK"
},{
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "UK"
},{
"fieldNameOrPath" : "Phone",
"value" : "+44 191 4956203"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Direct"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSQIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
247
Reference List Views for an Object
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
},{
"columns" : [ {
"fieldNameOrPath" : "Name",
"value" : "University of Arizona"
},{
"fieldNameOrPath" : "Site",
"value" : null
},{
"fieldNameOrPath" : "BillingState",
"value" : "AZ"
},{
"fieldNameOrPath" : "Phone",
"value" : "(520) 773-9050"
},{
"fieldNameOrPath" : "Type",
"value" : "Customer - Direct"
},{
"fieldNameOrPath" : "Owner.Alias",
"value" : "TUser"
},{
"fieldNameOrPath" : "Id",
"value" : "001D000000JliSYIAZ"
},{
"fieldNameOrPath" : "CreatedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "LastModifiedDate",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
},{
"fieldNameOrPath" : "SystemModstamp",
"value" : "Fri Aug 01 21:15:46 GMT 2014"
} ]
}],
"size" : 12
}
248
Reference List Views for an Object
Authentication
Authorization: Bearer token
Parameters
None
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/list
views -H "Authorization: Bearer token"
{
"done" : true,
"listviews" : [ {
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK/describe",
"developerName" : "NewThisWeek",
"id" : "00BD0000005WcBeMAK",
"label" : "New This Week",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK"
},{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBpMAK/describe",
"developerName" : "NewLastWeek",
"id" : "00BD0000005WcBpMAK",
"label" : "New Last Week",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBpMAK/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBpMAK"
},{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcC6MAK/describe",
"developerName" : "PlatinumandGoldSLACustomers",
"id" : "00BD0000005WcC6MAK",
"label" : "Platinum and Gold SLA Customers",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcC6MAK/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcC6MAK"
},{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCEMA0/describe",
"developerName" : "RecentlyViewedAccounts",
"id" : "00BD0000005WcCEMA0",
"label" : "Recently Viewed Accounts",
249
Reference Support Knowledge with REST API
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCEMA0/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCEMA0"
},{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCFMA0/describe",
"developerName" : "AllAccounts",
"id" : "00BD0000005WcCFMA0",
"label" : "All Accounts",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCFMA0/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCFMA0"
},{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCNMA0/describe",
"developerName" : "MyAccounts",
"id" : "00BD0000005WcCNMA0",
"label" : "My Accounts",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCNMA0/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCNMA0"
}],
"nextRecordsUrl" : null,
"size" : 6,
"sobjectType" : "Account"
}
250
Reference Data Category Groups
Example
Example Response Body
{
"dataCategoryGroups" :XX.X/support/dataCategoryGroups",
XX.X
"/services/data/v "knowledgeArticles" : /support/knowledgeArticles"
"/services/data/v
:
}
IN THIS SECTION:
Data Category Groups
Get data category groups that are visible to the current user. This resource is available in REST API version 38.0 and later.
Data Category Detail
Gets data category details and the child categories by a given category. This resource can be used in API version 38.0 and later.
Articles List
Get a page of online articles for the given language and category through either search or query. This resource is available in REST
API version 38.0 and later.
Articles Details
Gets all online article fields, accessible to the user. This resource is available with article IDs in REST API version 38.0 and later, and
this resource is available with article URL names in version 44.0 and later.
Syntax
URI
/services/data/vXX.X/support/dataCategoryGroups
Method
GET
Formats
JSON, XML
Authentication
Authorization: Bearer token
HTTP headers
Accept:
Optional. Can be either
application/json or application/xml.
Accept-language: Optional. Language to translate the categories. Any ISO-639 language abbreviation, and an ISO-3166 country
code subtag in the HTTP Accept-Language header. Only one language accepted. If no language specified, the non-translated labels
are returned.
251
Reference Data Category Groups
Input:
string :sObjectName
Required. KnowledgeArticleVersion only.
boolean : Optional. Defaults to true •True returns only the top
topCategoriesOnly
level categories.
•False returns the entire tree.
Note: All the input parameters are case-sensitive.
Output:
A list of the active data category groups that are visible to the current user in the site context. Returns id, name, label, and their top
level categories or the entire data category group tree that are visible to the current user. The labels must be translated to the given
language if they are available.
• Data Category Group List
This payload lists the active root Data Category Groups that can be used in other requests to return the data categories and
articles related to it.
{
"categoryGroups": [ Data Category Group, ....],
}
Note: Returns only the active groups that are associated to the given entity (by sObjectName). Only
KnowledgeArticleVersion is supported.
• Data Category Group
This represents an individual data category group, and its root category.
{
"name": String, // the unique name of the category group
"label": String, // returns the translated version if it is available
"objectUsage" : String, // currently only "KnowledgeArticleVersion" is available.
{
"name": String, // the unique name of the category
"label": String, // returns the translated version if it is available
"url": URL, // the url points to the data category detail API
"childCategories": [ Data Category Summary, ....] // null if topCategoriesOnly is
true
}
Note: The URL property is a pre-calculated path to the unique resource representing this data category, in this case it is a
Data Category Detail API.
252
Reference Data Category Detail
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/support/dataCategoryGroups?sObjectN
-H "Authorization: Bearer token"
{
"categoryGroups" : [ {
"label" : "Doc",
"name" : "Doc",
"objectUsage" : "KnowledgeArticleVersion",
"topCategories" : [ {
"childCategories" : null,
"label" : "All",
"name" : "All",
"url" :
"/services/data/v57.0/support/dataCategoryGroups/Doc/dataCategories/All?sObjectName=KnowledgeArticl
} ]
},{
"label" : "Manual",
"name" : "Manual",
"objectUsage" : "KnowledgeArticleVersion",
"topCategories" : [ {
"childCategories" : null,
"label" : "All",
"name" : "All",
"url" :
"/services/data/v57.0/support/dataCategoryGroups/Manual/dataCategories/All?sObjectName=KnowledgeArt
} ]
} ]
}
Syntax
URI
/services/data/vXX.X/support/dataCategoryGroups/group/dataCategories/category
Method
GET
Formats
JSON, XML
253
Reference Data Category Detail
Authentication
Authorization: Bearer token
HTTP headers
Accept:
Optional. Can be either
application/json or application/xml.
Accept-language: Optional. Language to translate the categories. Any ISO-639 language abbreviation, and an ISO-3166 country
code subtag in the HTTP Accept-Language header. Only one language accepted. If no language specified, the non-translated labels
are returned.
Input:
string sObjectName: Required. KnowledgeArticleVersion only.
Output:
Details of the category and a list of child categories (name, label, etc.).
• Data Category Detail
Used for situations where the hierarchical representation of data categories is important. The child property contains a list of
child data categories.
{
"name": String, // the unique name of the category
"label": String, // returns the translated version if it is available
"url": URL,
"childCategories": [ Data Category Summary, ....],
}
Note: If the category isn’t visible to the current user the return is empty.
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/support/dataCategoryGroups/Doc/data
-H "Authorization: Bearer token"
{
"childCategories" : [ {
"childCategories" : null,
"label" : "Help",
"name" : "Help",
"url" :
"/services/data/v57.0/support/dataCategoryGroups/Doc/dataCategories/Help?sObjectName=KnowledgeArtic
},{
"childCategories" : null,
"label" : "QA",
"name" : "QA",
"url" :
"/services/data/v57.0/support/dataCategoryGroups/Doc/dataCategories/QA?sObjectName=KnowledgeArticle
}],
254
Reference Articles List
"label" : "All",
"name" : "All",
"url" :
"/services/data/v57.0/support/dataCategoryGroups/Doc/dataCategories/All?
sObjectName=KnowledgeArticleVersion" }
Articles List
Get a page of online articles for the given language and category through either search or query. This resource is available in REST API
version 38.0 and later.
Syntax
URI
/services/data/vXX.X/support/knowledgeArticles
Method
GET
Formats
JSON, XML
Authentication
Authorization: Bearer token
HTTP headers
Accept:application/json
Optional. Can be either or application/xml.
Accept-language:
Required. The article must be an active language in the user’s organization
• If the language code isn’t valid, an error message is returned: “The language code is not valid or not supported by Knowledge.”
• If the language code is valid, but not supported by Knowledge, then an error message is returned: “Invalid language code. Check
that the language is included in your Knowledge language settings."
Input:
string
q: Optional, Performs an SOSL search. If the query string is null, empty, or not given, an SOQL query runs.
The characters
? and * are used for wildcard searches. The characters (, ), and " are used for complex search terms. See
https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_sosl_find.htm.
string
channel: Optional, defaults to user’s context. For information on channel values, see Valid channel values.
•App: Visible in the internal Salesforce Knowledge application
•Pkb: Visible in the public knowledge base
•Csp: Visible in the Customer Portal
•Prm: Visible in the Partner Portal
string
categories in map json format {“group1”:”category1”,”group2”:”category2”,...})
Optional, defaults to None. Category group must be unique in each group:category pair, otherwise you get
ARGUMENT_OBJECT_PARSE_ERROR. There is a limit of three data category conditions, otherwise you get
INVALID_FILTER_VALUE.
string
queryMethod values are: AT,BELOW,ABOVE,ABOVE_OR_BELOW. Only valid when categories are specified,
defaults to ABOVE_OR_BELOW.
255
Reference Articles List
string
sort: Optional, a sortable field name LastPublishedDate,CreatedDate,Title,ViewScore. Defau
to
LastPublishedDate for query and relevance for search.
Note: When sorting on
ViewScore it is only available for query, not search, and no pagination is supported. You only get
one page of results.
string
order: Optional, either ASC or DESC, defaults to DESC. Valid only when sort is valid.
integer
Output:
pageSize: Optional,
A page of online defaults
articles to given
in the 20. Valid range and
language 1 to category
100. visible to the current user.
integer
• Article Page
pageNumber: Optional, defaults to 1.
A page of articles. The individual entries are article summaries so the size can be kept at a minimum.
{
"articles": [ Article Summary, … ], // list of articles
"currentPageUrl":URL, //thearticlelistAPIwithcurrentpagenumber
"nextPageUrl": URL, // the article list API with next page number,
which can be null if there are no more articles.
"pageNumber":Int //thecurrentpagenumber,startingat1.
}
Note: The API supports paging. Each page of responses includes a URL to its page, as well as the URL to the next page of
articles.
Note: if the user input parameter has the default value, the API does not show this parameter in either
currentPageUrl or nextPageUrl.
• Article Summary
A summary of an article used in a list of article responses. It shares similar properties to the Article Detail representation, as
one is a superset of the other.
{
"id": Id, //articleId
"articleNumber": String,
"articleType": String, // apiName of the article type, available in API v44.0
and later
"title": String,
"urlName": String, // available in API v44.0 and later
"summary": String,
"url": URL, // to the Article Detail API
"viewCount":Int, //viewcountintheinterestedchannel
"viewScore": double (in xxx.xxxx precision), // view score in the interested
channel.
"upVoteCount": int, // up vote count in the interested channel.
"downVoteCount": int, // down vote count in the interested channel.
"lastPublishedDate": Date // last publish date in ISO8601 format
"categoryGroups": [ Data Category Group, …. ]}
The “url” property always points to the Article Details resource endpoint. For information on valid channel values, see the
channel parameter description
256
Reference Articles List
An individual data category group, its root category, and a list of selected data categories in the group.
{
"groupName": String, // the unique name of the category group
"groupLabel": String, // returns the translated version
"selectedCategories": [ Data Category Summary, … ]
}
{
"categoryName": String, // the unique name of the category
"categoryLabel": String, // returns the translated version, per the API
language specified
"url": String // returns the url for the DataCategory REST API.
}
Note: The outputs of Data Category Group and Data Category Summary in Article List API are different from the Data
Category Groups API.
Example
Example Request
curl
MyDomainName
https:// .my.salesforce.com/services/data/v57.0/support/knowledgeArticles?sort=ViewScore&chan
HTTP Headers:
Content-Type: application/json; charset=UTF-8
Accept: application/json
Accept-Language: en-US
{
"articles" : [ {
"articleNumber" : "000001002",
"categoryGroups" : [ ],
"downVoteCount" : 0,
"id" : "kA0xx000000000BCAQ",
"lastPublishedDate" : "2015-02-25T02:07:18Z",
"summary" : "With this online Chinese input tool, you can type Chinese characters
through your web browser without installing any Chinese input software in your system.
The Chinese online input tool uses the popular Pin Yin input method. It is a fast and
convenient tool to input Chinese on English OS environments.",
"title" : "Long text test",
"upVoteCount" : 0,
"url" : "/services/data/v57.0/support/knowledgeArticles/kA0xx000000000BCAQ",
"viewCount" : 4,
"viewScore" : 100.0
},{
"articleNumber" : "000001004",
"categoryGroups" : [ ],
257
Reference Articles List
"downVoteCount" : 0,
"id" : "kA0xx000000000LCAQ",
"lastPublishedDate" : "2016-06-21T21:11:02Z",
"summary" : "The number of characters required for complete coverage of all these
languages' needs cannot fit in the 256-character code space of 8-bit character encodings,
requiring at least a 16-bit fixed width encoding or multi-byte variable-length encodings.
\r\n\r\nAlthough CJK encodings have common character sets, the encodings often used to
represent them have been developed separately by different East Asian governments and
software companies, and are mutually incompatible. Unicode has attempted, with some
controversy, to unify the character sets in a process known as Han unification.\r\n\r\nCJK
character encodings should consist minimally of Han characters p",
"title" : "Test Images",
"upVoteCount" : 0,
"url" : "/services/data/v57.0/support/knowledgeArticles/kA0xx000000000LCAQ",
"viewCount" : 0,
"viewScore" : 0.0
},{
"articleNumber" : "000001012",
"categoryGroups" : [ ],
"downVoteCount" : 0,
"id" : "kA0xx000000006GCAQ",
"lastPublishedDate" : "2016-06-21T21:10:48Z",
"summary" : null,
"title" : "Test Draft 2",
"upVoteCount" : 0,
"url" : "/services/data/v57.0/support/knowledgeArticles/kA0xx000000006GCAQ",
"viewCount" : 0,
"viewScore" : 0.0
}],
"currentPageUrl" :
"/services/data/v57.0/support/knowledgeArticles?channel=Pkb&pageSize=3&sort=ViewScore",
"nextPageUrl" : null,
"pageNumber" : 1
}
Usage
Salesforce Knowledge must be enabled in your organization. This resource can be used in API version 38.0 and later. The Custom File
Field is not supported because it returns a link to a binary stream. Use the language code format used inWhich Languages Does Salesforce
Support?.
Articles Details
Gets all online article fields, accessible to the user. This resource is available with article IDs in REST API version 38.0 and later, and this
resource is available with article URL names in version 44.0 and later.
Salesforce Knowledge must be enabled in your organization. This resource can be used in API version 38.0 and later. The Custom File
Field is not supported because it returns a link to a binary stream. Use the language code format used in Which Languages Does
Salesforce
Support?.
A lookup custom field is visible to guest users depending on the lookup entity type. For example, User is visible, but Case and Account
are not visible. Following standard fields are not visible to a guest user, even if they are in the layout:
• archivedBy
• isLatestVersion
• translationCompletedDate
• translationImportedDate
• translationExportedDate
• versionNumber
• visibleInInternalApp
• visibleInPKB
• visibleToCustomer
• visbileToPartner
Syntax
Method
GET
Formats
JSON, XML
Authentication
Authorization: Bearer token
Endpoint
/services/data/vXX.X/support/knowledgeArticles/articleId_or_articleUrlName
HTTP headers
Accept:application/json
Optional. Can be either or application/xml.
Accept-language:
Required. The article must be an active language in the user’s organization
• If the language code isn’t valid, an error message is returned: “The language code is not valid or not supported by Knowledge.”
• If the language code is valid, but not supported by Knowledge, then an error message is returned: “Invalid language code. Check
that the language is included in your Knowledge language settings."
Input:
string
channel: Optional, defaults to user’s context. For information on channel values, see Valid channel Values.
•App: Visible in the internal Salesforce Knowledge application
•Pkb: Visible in the public knowledge base
•Csp: Visible in the Customer Portal
•Prm: Visible in the Partner Portal
boolean
updateViewStat: Optional, defaults to true. If true, API updates the view count in the given channel as well as the
total view count.
boolean
isUrlName: Optional, defaults to false. If true, indicates that the last portion of the endpoint is a URL name instead of an
Output:
article ID. Available in API v44.0 and later
The detailed fields of the article, if the article is online and visible to the current user.
• Article Detail
Full detail of an article, with complete metadata and layout-driven fields used for display of an article. It includes all the
same properties as an Article Summary representation.
{
"id": Id, //articleId,
"articleNumber": String,
"articleType": String, // apiName of the article type, available in API
v44.0 and later
"title": String,
260
Reference Articles Details
"urlName":String, //availableinAPIv44.0andlater
"summary": String,
"url": URL,
"versionNumber": Int,
"createdDate": Date, // in ISO8601 format
"createdBy": User Summary on page 261,
"lastModifiedDate": Date, // in ISO8601 format
"lastModifiedBy": User Summary on page 261,
"lastPublishedDate": Date, // in ISO8601 format
"layoutItems": [ Article Field, ... ], // standard and custom fields visible
to the user, sorted based on the layouts of the article type.
"categories": [ Data Category Groups, ... ],
"appUpVoteCount": Int,
"cspUpVoteCount": Int,
"prmUpVoteCount": Int,
"pkbUpVoteCount": Int,
"appDownVoteCount": Int,
"cspDownVoteCount": Int,
"prmDownVoteCount": Int,
"pkbDownVoteCount": Int,
"allViewCount": Int,
"appViewCount": Int,
"cspViewCount": Int,
"prmViewCount": Int,
"pkbViewCount": Int,
"allViewScore": Double,
"appViewScore": Double,
"cspViewScore": Double,
"prmViewScore": Double,
"pkbViewScore": Double
}
• User Summary
{
"id": String
"isActive":boolean //true/false
"userName":String //loginname
"firstName": String
"lastName": String
"email": String
"url":String //tothechatteruserdetailurl:
/services/data/vXX.X/chatter/users/{userId}, for guest user, it will return null.
}
• Article Field
An individual field of article information, which is listed in an Article Detail in the order required by the administrator’s layout.
{
"type":Enum, //seetheNotes
"name": String, // In API v43.0 and earlier, the developer name. In
API v44.0 and later, the API name.
"label":String, //label
261
Reference Articles Details
"value": String,
}
Example
Example Request
curl
MyDomainName
https:// .my.salesforce.com/services/data/v57.0/support/knowledgeArticles/kA0xx000000000LCA
HTTP Headers:
Content-Type: application/json; charset=UTF-
8 Accept: application/json
Accept-Language: en-US
{
"allViewCount" : 17,
"allViewScore" : 100.0,
"appDownVoteCount" : 0,
"appUpVoteCount" : 0,
"appViewCount" : 17,
"appViewScore" : 100.0,
"articleNumber" : "000001004",
"categoryGroups" : [ ],
"createdBy" : {
"email" : "[email protected]",
"firstName" : "Test",
"id" : "005xx000001SvoMAAS",
"isActive" : true,
"lastName" : "User",
"url" :
"/services/data/v57.0/chatter/users/005xx000001SvoMAAS",
"userName" : "[email protected]"
},
"createdDate" : "2016-06-21T21:10:54Z",
"cspDownVoteCount" : 0,
"cspUpVoteCount" : 0,
"cspViewCount" : 0,
"cspViewScore" : 0.0,
"id" : "kA0xx000000000LCAQ",
"lastModifiedBy" : {
"email" : "[email protected]",
"firstName" : "Test",
"id" : "005xx000001SvoMAAS",
"isActive" : true,
"lastName" : "User",
"url" :
"/services/data/v57.0/chatter/users/005xx000001SvoMAAS",
"userName" : "[email protected]"
},
"lastModifiedDate" : "2016-06-21T21:11:02Z",
"lastPublishedDate" : "2016-06-21T21:11:02Z",
"layoutItems" : [ {
"label" : "Out of Date",
262
Reference Parameterized Search
"name" : "IsOutOfDate",
"type" : "CHECKBOX",
"value" : "false"
},{
"label" : "sample",
"name" : "sample",
"type" : "PICK_LIST",
"value" : null
},{
"label" : "Language",
"name" : "Language",
"type" : "PICK_LIST",
"value" : "en_US"
},{
"label" : "MyNumber",
"name" : "MyNumber",
"type" : "NUMBER",
"value" : null
},{
"label" : "My File",
"name" : "My_File",
"type" : "FILE",
"value" : null
}],
"pkbDownVoteCount" : 0,
"pkbUpVoteCount" : 0,
"pkbViewCount" : 0,
"pkbViewScore" : 0.0,
"prmDownVoteCount" : 0,
"prmUpVoteCount" : 0,
"prmViewCount" : 0,
"prmViewScore" : 0.0,
"summary" : "The number of characters required for complete coverage of all these
languages' needs cannot fit in the 256-character code space of 8-bit character encodings,
requiring at least a 16-bit fixed width encoding or multi-byte variable-length encodings.
\r\n\r\nAlthough CJK encodings have common character sets, the encodings often used to
represent them have been developed separately by different East Asian governments and
software companies, and are mutually incompatible. Unicode has attempted, with some
controversy, to unify the character sets in a process known as Han unification.\r\n\r\nCJK
character encodings should consist minimally of Han characters p",
"title" : "Test Images",
"url" : "/services/data/v57.0/support/knowledgeArticles/kA0xx000000000LCAQ",
"versionNumber" : 7
}
Usage
Parameterized Search
Executes a simple REST search using parameters instead of a SOSL clause. Indicate parameters in the URI with the GET method. Or, use
the POST method to create complex searches in a request body.
263
Reference Search with Parameters in the URI
Syntax
URI
/services/data/vXX.X/parameterizedSearch/?q=searchString
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Required Global Parameters
Name Description
dataCategory string Single value. If an organization uses Salesforce Knowledge articles or answers,
filters all search results based on one data category.
dataCategory
For example,
dataCategory=GlobalCategory__c below
NorthAmerica__c.
When using , specify a Salesforce Knowledge article or answer type
with and all the required parameters.
dataCategories
sobject
For example:
q=tourism&sobject=KnowledgeArticleVersion&KnowledgeArticle
Version.where=
language='en_US'+and+publishStatus='online'&KnowledgeArtic
leVersion.fields=
Ifid,title&dataCategory=Location__c+Below+North_America__c
you require dataCategory filters, usedataCategories with the POST
multiple method.
264
Reference Search with Parameters in the URI
265
Reference Search with Parameters in the URI
metadata string Specifies if metadata should be returned in the response. No metadata is returned by
default. To include metadata in the response, use the LABELS value, which returns the
display label for the fields returned in search results. For example:
?q=Acme&metadata=LABELS
string Single value. The starting row offset into the result set returned.
offset
The maximum
offset is 2000.
Only one
sobject can be specified when using this parameter.
overallLimit string
Single value. The maximum number of results to return across all
sobject parameters
specified.
The maximum
pricebookId string overallLimit is 2000.
Single value. Filters product search results by a price book ID for only the Product2 object.
The price book ID must be associated with the product that you’re searching for. For
?q=laptop&sobject=product2&pricebookId=01sxx0000002MffAAE
example,
snippet string The target length (maximum number of snippet characters) to return in Salesforce
Knowledge article, case, case comment, feed, feed comment, idea, and idea comment
search results. The
snippet parameter displays contextual excerpts and highlights the
search term for each article in the search results. Snippet results are used to differentiate
matches to the search term in article search results. The target length can be from 50 to
1000 characters.
Snippet and highlights are generated from email, text, and text area (long and rich)
fields. Snippets aren’t displayed for partially matching searches or if the user doesn’t
have access to the field that contains the snippet. Snippets are only displayed when 20 or
fewer results are returned on a page.
At least one of the following
sobject values must be specified.
•To search a specific article type, use the article type name with the suffix
__kav.
•To search all article types, use
KnowledgeArticleVersion.
•To search case, case comment, feed, feed comment, idea, and idea comment types,
use
Case, CaseComment, FeedItem, FeedComment, Idea, and
IdeaComment. 266
Reference Search with Parameters in the URI
sobject string Objects to return in the response. Must be a valid object type.
You can use multiple
sobject values, such as
sobject=Account&sobject=Contact.
If unspecified, then the search results contain the IDs of all objects.
boolean
spellCorrection true, spell
Specifies whether spell correction is enabled for a user’s search. When set to
true.
correction is enabled for searches that support spell correction. The default value is
For example:
q=Acme&sobject=Account&Account.fields=id&spellCorrection=true
string
updateTracking Specifies a value of true to track keywords that are used in Salesforce Knowledge article
searches only.
If unspecified, the default value of
false is applied.
string
updateViewStat Specifies a value of
true to update an article’s view statistics. Valid only for Salesforce
Knowledge article searches.
If unspecified, the default value of
false is applied.
sobject-level Parameters
The following
sobject optional
parameter in a parameters
GET methodcan be usedrefine
to further with the
search results.
These settings would override any settings specified at the global level.
The format is sobject
.parameter, such as Account.fields. An sobject must be specified to use these parameters,
for example,
sobject=Account&Account.fields=id,name.
Name Type Description
fields string Comma-separated list of one or more fields to return in the response.
For example, KnowledgeArticleVersion.fields=id,title.
string Specifies the maximum number of rows that are returned for the sobject.
limit
For example,
Account.limit=10.
string Controls the field order of the results using the following syntax
orderBy orderBy = field {ASC|DESC}
[NULLS_{FIRST|LAST}]
For example: Account.orderBy=Name
•:
ASCascending. Default.
•: descending.
DESC
•: Null records at the beginning of the results. Default.
NULLS_FIRST
•: Null records at the end of the results.
NULLS_LAST
267
Reference Search with Parameters in the Request Body
where string Filter search results for this object by specific field values.
For example, Account. Here the
.where=conditionExpression conditionExpression
of the WHERE clause uses the following syntax: [logicalOperator
fieldExpression
fieldExpression2 ... ].
Add multiple field expressions to a condition expression by using logical and comparison operators. For
example,
KnowledgeArticleVersion.where=publishstatus='online' and
language='en_US'.
Example
Example Request
curl
MyDomainName
https:// .my.salesforce.com/services/data/v57.0/parameterizedSearch/?q=Acme&sobject=Account&Acc
Syntax
URI
/services/data/vXX.X/parameterizedSearch/
Formats
JSON, XML
HTTP methods
POST
Authentication
Authorization: Bearer token
Required Global Parameters
Name Description
268
Reference Search with Parameters in the Request Body
defaultLimit string Single value. The maximum number of results to return for each sobject (GET) or
sobjects (POST) specified.
The maximum is 2000.
defaultLimit
At least one must be specified.
sobject
GET example:
defaultLimit=10&sobject=Account&sobject=Contact.
When an limit is specified using sobject
sobject.limit=value, such as
,Account.limit=10
this parameter is ignored for that object.
string Single value. Filters search results based on the division field.
division
For example in the GET method,
division=global.
Specify a division by its name rather than ID.
All searches within a specific division also include the
global division.
fields string[] Array of one or more fields to return in the response for each sobjects specified. At
least onemust be specified at the global level.
sobjects
For example:
{
"q":"Acme",
"fields":["Id", "Name", "Phone"],
"sobjects":[{"name": "Account"},
{"name": "Contact", "fields":["Id",
"FirstName", "LastName"]},
{"name": "Lead"}]
}
269
Reference Search with Parameters in the Request Body
• format: Applies localized formatting to standard and custom number, date, time,
and currency fields. For example:
{
...
"sobjects":[ {"name": "Opportunity", "fields":["Id",
"format(Amount)"]}]
...
}
Aliasing
fields is supported within
for toLabel, convertCurrency, and
format. In addition, aliasing is required when the query includes the same field multiple
times. For example:
{
...
"sobjects":[ {"name": "Opportunity", "fields":["Id",
"format(Amount) AliasAmount"]}]
...
}
270
Reference Search with Parameters in the Request Body
in string Scope of fields to search. If you specify one or more scope values, the fields are
returned for all found objects.
Use one of the following values:
• ALL
• NAME
• EMAIL
• PHONE
• SIDEBAR
This clause doesn't apply to articles, documents, feed comments, feed items, files,
products, and solutions. If any of these objects are specified, the search isn’t limited to
specific fields; all fields are searched.
metadata string Specifies if metadata should be returned in the response. No metadata is returned by
default. To include metadata in the response, use the LABELS value, which returns the
display label for the fields returned in search results. For example:
?q=Acme&metadata=LABELS
string Single value. The starting row offset into the result set returned.
offset
The maximum
offset is 2000.
Only one
sobject can be specified when using this parameter.
overallLimit string
Single value. The maximum number of results to return across all
sobject parameters
specified.
The maximum
pricebookId string overallLimit is 2000.
Single value. Filters product search results by a price book ID for only the Product2 object.
The price book ID must be associated with the product that you’re searching for. For
?q=laptop&sobject=product2&pricebookId=01sxx0000002MffAAE
example,
snippet string The target length (maximum number of snippet characters) to return in Salesforce
Knowledge article, case, case comment, feed, feed comment, idea, and idea comment
search results. The
snippet parameter displays contextual excerpts and highlights the
search term for each article in the search results. Snippet results are used to differentiate
matches to the search term in article search results. The target length can be from 50 to
1000 characters.
Snippet and highlights are generated from email, text, and text area (long and rich)
fields. Snippets aren’t displayed for partially matching searches or if the user doesn’t
have access to the field that contains the snippet. Snippets are only displayed when 20 or
fewer results are returned on a page.
At least one of the following
sobject values must be specified.
271
Reference Search with Parameters in the Request Body
{
"q":"Acme",
"fields":["id", "title"],
"sobjects":[{"name":"Solution__kav",
"where":"language='en_US' and publishstatus='draft'"},
{"name":"FAQ__kav", "where":"language='en_US'
and publishstatus='draft'"}]
}
If unspecified, then the search results contain the IDs of all objects.
boolean
spellCorrection Specifies whether spell correction is enabled for a user’s search. When set to true, spell
correction is enabled for searches that support spell correction. The default value istrue.
For example:
q=Acme&sobject=Account&Account.fields=id&spellCorrection=true
string
updateTracking Specifies a value of true to track keywords that are used in Salesforce Knowledge article
searches only.
If unspecified, the default value of
false is applied.
string
updateViewStat Specifies a value of
true to update an article’s view statistics. Valid only for Salesforce
Knowledge article searches.
If unspecified, the default value of
false is applied.
dataCategoriesFilter[] Parameters
Parameters must be specified in the order presented in the table ( groupName, operator, categories).
groupNam string The name of the data category group to filter by.
272
Reference Search with Parameters in the Request Body
sobjectsFilter[] Parameters
fields string[] Array of one or more fields to return in the response for the sobject.
limit string Specify the maximum number of rows that are returned for thesobject.
{
...
"sobjects":[ {"name": "Account", "fields":["Id", "name"], "orderBy":
"Name DESC Nulls_last"}]
...
}
{
"q":"Smith",
"fields" : ["id", "firstName", "lastName"],
"sobjects":[{"fields":["id", "NumberOfEmployees"],
273
Reference Portability
"name": "Account",
"limit":20},
{"name": "Contact"}],
"in":"ALL",
"overallLimit":100,
"defaultLimit":10
}
Portability
The Portability resource compiles customer information across objects and fields that you identified when creating a portability policy
in Salesforce Privacy Center. You can locate your customers’ personally identifiable information (PII) across multiple records when
using REST API version 50.0 and later. Data portability satisfies your customers’ right to obtain a copy of their PII that is kept in your
organization’s platform. To meet privacy regulations, such as the General Data Protection Regulation (GDPR), data portability requests
must be fulfilled within one month of when the request is made.
Syntax
URI
/services/data/vXX.X/consent/dsr/rtp/execute
Formats
JSON
HTTP methods
POST
Authentication
Authorization: Bearer token
Request body
{
“dataSubjectId”:”<root
ID>”,
} “policyName”:”<policyName>”
274
Reference Get the Status of Your Portability Request
Request parameters
Parameter Description
dataSubjectId The ID of the customer making the request. The ID is 15 or 18 characters long, and
found in the Account, Contact, Individual, Lead, Person, and User objects.
The name of an active policy. This contains the object in the dataSubjectId parameter.
policyName
Example
Example Request
curl -X POST
https://MyDomainName.my.salesforce.com/services/data/v57.0/consent/dsr/rtp/execute -H
"Authorization: Bearer token" -H "Content-Type: application/json" -d
"@exampleRequestBody.json"
{
“status" : "SUCCESS",
"warnings" : [ ],
"result" : {
"policyFileStatus" : "In Progress",
"policyFileUrl" :
"https://MyDomainName.my.salesforce.com/servlet/policyFileDownload?file=0jeS70000004CBO",
"policyFileId" : "0jeS70000004CBO"
}
}
Value Description
policyFileStatus The status of the file being compiled. Values are: In Progress, Complete, or Failed.
policyFileURL The URL to a servlet, where you download the file after it's compiled.
policyFileID The ID of the file being compiled, which is returned in the POST method response. The
ID is 15 characters.
275
Reference Get the Status of Your Portability Request
Note: Starting with the Spring ‘21 release, Privacy Center automatically deletes files generated by Portability API after 60 days.
You receive a reminder seven days before a file is deleted.
Syntax
URI
/services/data/vXX.X/consent/dsr/rtp/execute
Formats
JSON
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None
Request parameters
Parameter Description
policyFileId The ID of the file being compiled, which is returned in the POST method response.
The ID is 15 characters.
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/consent/dsr/rtp/execute?policyFileI
-H "Authorization: Bearer token"
{
“status" : "SUCCESS",
"warnings" : [ ],
"result" : {
"policyFileStatus" : "Failed",
"policyFileUrl" :
"https://MyDomainName.my.salesforce.com/servlet/policyFileDownload?file=0jeS70000004CBO",
"policyFileId" : "0jeS70000004CBO"
}
}
276
Reference Process Approvals
Process Approvals
Accesses all approval processes. Can also be used to submit a particular record if that entity supports an approval process and one has
already been defined. Records can be approved and rejected if the current user is an assigned approver.
IN THIS SECTION:
Get Process Approvals
Gets a list of all approval processes. This resource is available in REST API version 30.0 and later.
Submit, Approve, or Reject Process Approvals
Submits a particular record if that entity supports an approval process and one has already been defined. Records can be approved
and rejected if the current user is an assigned approver. This resource is available in REST API version 30.0 and later.
Return HTTP Headers for Process Approvals
Returns only the headers that are returned by sending a GET request to the process approvals resource. This gives you a chance to
see returned header values of the GET request before retrieving the content. This resource is available in REST API version 30.0 and
later.
Syntax
URI
/services/data/vXX.X/process/approvals/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
Example
See Get a List of All Approval Processes..
277
Reference Submit, Approve, or Reject Process Approvals
Syntax
URI
/services/data/vXX.X/process/approvals/
Formats
JSON, XML
HTTP methods
POST
Authentication
Authorization: Bearer token
Request parameters
None required
Request body
The request body contains an array of process requests that contain the following information:
actionType string Represents the kind of action to take: Submit, Approve, or Reject.
ID
contextActorId The ID of the submitter who’s requesting the approval record.
comments string The comment to add to the history step associated with this request.
ID[]
nextApproverIds If the process requires specification of the next approval, the ID of the user to be
assigned the next request.
The developer name or ID of the process definition.
processDefin string
Determines whether to evaluate the entry criteria for the process (true) or not
itionNameOrI boolean (false) if the process definition name or ID isn’t null. If the process definition name
d
or ID isn’t specified, this argument is ignored, and standard evaluation is followed
based on process order. By default, the entry criteria isn’t skipped if it’s not set
skipEntryCri by this request.
teria
Response body
The response contains an array of process results that contain the following information:
actorIds ID[] IDs of the users who are currently assigned to this approval step.
instanceId ID The ID of the ProcessInstance associated with the object submitted for processing.
278
Reference Return HTTP Headers for Process Approvals
ID[]
newWorkItemIds Case-insensitive IDs that point to ProcessInstanceWorkitem items (the set of
pending approval requests)
true if processing or approval completed successfully.
success boolean
Example
• See Submit a Record for Approval.
• See Approve a Record.
• See Reject a Record.
• See Bulk Approvals.
Syntax
URI
/services/data/vXX.X/process/approvals/
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request parameters
None required
Example
Example Request
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/process/approvals/ -H
"Authorization: Bearer token
"
HTTP/1.1 200 OK
Date: Mon, 21 Nov 2022 22:56:26 GMT
279
Reference Process Rules
Process Rules
Accesses a list of all active workflow rules. Use the GET method to retrieve records or fields. Use the HEAD method to retrieve
information in HTTP headers. Use the POST method to trigger all active workflow rules.
To access all workflow rules that are associated with a specific sObject, use the Process Rule List for an sObject resource. To access a
specific workflow rule that is associated with a specific sObject, use the Process Rule for an sObject resource.
Cross-object workflow rules can’t be invoked using REST API.
IN THIS SECTION:
Get Process Rules
Gets all active workflow rules. This resource is available in REST API version 30.0 and later.
Trigger Process Rules
Triggers all active workflow rules. All rules associated with the specified ID are evaluated, regardless of the evaluation criteria. All IDs
must be for records on the same object. This resource is available in REST API version 30.0 and later.
Return HTTP Headers for Process Rules
Returns only the headers that are returned by sending a GET request to the process rules resource. This gives you a chance to see
returned header values of the GET request before retrieving the content. This resource is available in REST API version 30.0 and later.
Syntax
URI
/services/data/vXX.X/process/rules/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
Example
See Get a List of Process Rules.
280
Reference Return HTTP Headers for Process Rules
Syntax
URI
/services/data/vXX.X/process/rules/
Formats
JSON, XML
HTTP methods
POST
Authentication
Authorization: Bearer token
Request parameters
None required
Request body
The request body contains an array of context IDs:
contextIds ID[] An array of IDs of the items that are being acted upon.
Example
See Trigger Process Rules.
Syntax
URI
/services/data/vXX.X/process/rules/
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request parameters
None required
281
Reference Process Rule for an sObject
Example
Example Request
HTTP/1.1 200 OK
Date: Mon, 21 Nov 2022 22:56:26 GMT
IN THIS SECTION:
Retrieve a Process Rule for an sObject
Retrieves the fields of a specific workflow rule for a specific sObject.
Trigger a Process Rule for an sObject
Triggers an active workflow rule regardless of the evaluation criteria.
Return HTTP Headers for a Process Rule of an sObject
Returns only the headers that are returned by sending a GET request to the process rules resource for a specific process rule of an
sObject. This gives you a chance to see returned header values of the GET request before retrieving the content.
282
Reference Trigger a Process Rule for an sObject
Request parameters
None required
Example usage
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/process/rules/Account/01QD0000000AP
-H "Authorization: Bearer token"
{
"actions" : [ {
"id" : "01VD0000000D2w7",
"name" : "ApprovalProcessTask",
"type" : "Task"
}],
"description" : null,
"id" : "01QD0000000APli",
"name" : "My Rule",
"namespacePrefix" : null,
"object" : "Account"
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/process/rules/Account/01XXX000000Xx
-H "Authorization: Bearer token"
283
Reference Return HTTP Headers for a Process Rule of an sObject
{
"errors" : null,
"success" : true
}
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/process/rules/Account/01XXX000000/
-H "Authorization: Bearer token"
HTTP/1.1 200 OK
Date: Mon, 21 Nov 2022 22:56:26 GMT
284
Reference Get Process Rules for an sObject
IN THIS SECTION:
Get Process Rules for an sObject
Gets all active workflow rules for an sObject. This resource is available in REST API version 30.0 and later.
Return HTTP Headers for Process Rules of an sObject
Returns only the headers that are returned by sending a GET request to the process rules resource for all process rules of an sObject.
This gives you a chance to see returned header values of the GET request before retrieving the content. This resource is available in
REST API version 30.0 and later.
Syntax
URI
/services/data/vXX.X/process/rules/sObject
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request parameters
None required
Request body
None required
Example
Example Request
curlhttps:// MyDomainName
.my.salesforce.com/services/data/v57.0/process/rules/Account -
H"Authorization:Bearer " token
{
"rules" : {
"Account" : [ {
"actions" : [ {
"id" : "01VD0000000D2w7",
"name" : "ApprovalProcessTask",
"type" : "Task"
}],
"description" : null,
"id" : "01QD0000000APli",
"name" : "My Rule",
285
Reference Return HTTP Headers for Process Rules of an sObject
"namespacePrefix" : null,
"object" : "Account"
} ]
}
}
Syntax
URI
/services/data/vXX.X/process/rules/sObject
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request parameters
None required
Request body
None required
Example
Example Request
HTTP/1.1 200 OK
Date: Mon, 21 Nov 2022 22:56:26 GMT
Product Schedules
Work with revenue and quantity schedules for opportunity products. Establish or reestablish a product schedule with multiple
installments for an opportunity product. Delete all installments in a schedule.
This resource is available in REST API version 43.0 and later.
In API version 46.0 and later, established and re-established schedules support custom fields, validation rules, and Apex triggers.
Deleting all schedules now also fires delete triggers.
286
Reference Product Schedules
URI
XX.X/sobjects/OpportunityLineItem/
/services/data/v OpportunityLineItemId
/OpportunityLineItemSchedules
Formats
JSON, XML
HTTP Method
GET, PUT, DELETE
Authentication
Authorization: Bearer token
Parameters
Parameter Description
revenueScheduleType The type of the revenue schedule, if the product has one. Valid
values are or Repeat.
Divide
revenueScheduleInstallmentPeriod If the product has a revenue schedule, the amount of time
covered
Daily, by the schedule. Valid values are
Weekly,
Monthly, Quarterly, or Yearly.
287
Reference Query
Example:
Establish both quantity and revenue schedules for an opportunity product; establish a revenue schedule only;
establish a quantity schedule only.
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/OpportunityLineItem/00
-H "Authorization: Bearer token"
{
"type": "Both",
"quantity": 100,
"quantityScheduleType": "Repeat",
"quantityScheduleInstallmentPeriod": "Monthly",
"quantityScheduleInstallmentsNumber": 12,
"quantityScheduleStartDate": "2018-09-15",
"revenue": 100,
"revenueScheduleType": "Repeat",
"revenueScheduleInstallmentPeriod": "Monthly",
"revenueScheduleInstallmentsNumber": 12,
"revenueScheduleStartDate": "2018-09-15"
}
{
"type": “Revenue”,
"revenue": 100,
"revenueScheduleType": “Divide”,
"revenueScheduleInstallmentPeriod": “Quarterly”,
"revenueScheduleInstallmentsNumber": 10,
"revenueScheduleStartDate": "2018-09-15"
}
{
"type": “Quantity”,
"quantity": 10,
"quantityScheduleType": "Repeat",
"quantityScheduleInstallmentPeriod": “Daily”,
"quantityScheduleInstallmentsNumber": 150,
"quantityScheduleStartDate": "2020-09-15",
}
Query
Executes the specified SOQL query.
When a SOQL query is executed, up to 2,000 records can be returned at a time in a synchronous request. If the number of results exceeds
this limit, the response contains the first set of 2,000 results, a
false value for done, and a query locator. The query locator can be
used with the Query More Results on page 291 resource to retrieve the next set of records.
The response contains the total number of records returned by the QueryAll request (
totalSize), a boolean indicating whether there
are no more results (
done), the URI of the next set of records (nextRecordsUrl), and an array of query result records (records).
288
Reference Query
Syntax
URI
/services/data/vXX.X/query?q=query
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
q A SOQL query. To create a valid URI, replace spaces in the query string with a plus sign + or with
%20. For example: SELECT+Name+FROM+MyObject. If the SOQL query string is invalid, a
MALFORMED_QUERY response is returned.
Example
Example Response Body
{
"totalSize": 3222,
"done": false,
"nextRecordsUrl": "/services/data/v57.0/query/01gRO0000016PIAYA2-500",
"records": [
{
"attributes": {
"type": "Contact",
"url": "/services/data/v57.0/sobjects/Contact/003RO0000035WQgYAM"
},
"Id": "003RO0000035WQgYAM",
"Name": "John Smith"
},
...
]
}
289
Reference Customer Data Platform Query Profile Parameters
• SOQLOFFSET clause
• SOQLORDERBY clause
SOQL Limitations
The following queries are not supported for use with Customer Data Platform:
•
SOQL Subqueries
•
SELECT clause: aggregate functions
•
SELECT clause: date functions
Sample
• Queries
SOQLHAVING clause
Use Case Queries
Data Preview: Get Email Click EventsSELECT SubscriberKey__c, EngagementChannel__c, EmailName__c,
Examine data that has been ingestedSubjectLine__cFROM sfmc_email_engagement_click_{EID}__dll
into a data lake object. LIMIT =100
290
Reference Query More Results
291
Reference QueryAll
Parameters
Parameter Description
queryLocator A string used to retrieve the next set of query results. If there are more results to be retrieved,
the previous set of query results contains the query locator in the
nextRecordsUrl field.
Example
Example Response Body
{
"totalSize": 3222,
"done": false,
"nextRecordsUrl": "/services/data/v57.0/query/01gRO0000016PIAYA2-500",
"records": [
{
"attributes": {
"type": "Contact",
"url": "/services/data/v57.0/sobjects/Contact/003RO0000035WQgYAM"
},
"Id": "003RO0000035WQgYAM",
"Name": "John Smith"
},
...
]
}
QueryAll
Executes the specified SOQL query. Unlike the Query resource, QueryAll returns records that are deleted because of a merge or delete.
QueryAll also returns information about archived task and event records. This resource is available in REST API version 29.0 and later.
When a QueryAll request is executed, up to 2,000 records can be returned at a time in a synchronous request. If the number of results
exceeds this limit, the response contains the first set of 2,000 results, a false value for done, and a query locator. The query locator
can be used with the QueryAll More Results resource to retrieve the next batch of records.
Although the
nextRecordsUrl has query in the URL, it still provides remaining results from the initial QueryAll request. The
remaining results include deleted records that matched the initial query.
The response contains the total number of records returned by the QueryAll request (
totalSize), a boolean indicating whether there
are no more results (
done), the URI of the next set of records (nextRecordsUrl), and an array of query result records (records).
292
Reference QueryAll
Syntax
URI
/services/data/vXX.X/queryAll?q=query
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
q A SOQL query. To create a valid URI, replace spaces with a plus sign + in the query
string. For example:
SELECT+Name+FROM+MyObject.
Example
Example Response Body
{
"totalSize": 3222,
"done": false,
"nextRecordsUrl": "/services/data/v57.0/query/01gRO0000016PIAYA2-500",
"records": [
{
"attributes": {
"type": "Contact",
"url": "/services/data/v57.0/sobjects/Contact/003RO0000035WQgYAM"
},
"Id": "003RO0000035WQgYAM",
"Name": "John Smith"
},
...
]
}
293
Reference QueryAll More Results
results,
a false value for done, and a query locator. Use this query locator in a QueryAll More Results request to retrieve the next set of 2,000
records. If there are still more records to be returned, the response contains a new query locator and
done is false. You can continue
retrieving results from the initial QueryAll request until
done is true, which indicates that all results are returned.
Note: The URI specified in the
nextRecordsUrl field of a QueryAll response body contains query instead of queryAll.
To retrieve the next set of results, you can use either the Query More Results or the QueryAll More Results resources with the same
query •locator. The remaining results include deleted records that match the initial query.
/services/data/v57.0/query/01g5e00001AH2dOAAT-4000
For example,
• if the response body of a QueryAll request contains
/services/data/v57.0/queryAll/01g5e00001AH2dOAAT-4000
"nextRecordsUrl":
The"/services/data/v57.0/query/01g5e00001AH2dOAAT-4000",
response contains the total number of records returned by the QueryAll request (), a boolean
totalSize you can indicating whether the
retrieve there are
nextno
more results (
nextRecordsUrl
done), the URI of the next set of records (), and an array
set ofof
query result recordsresults
QueryAll (records).
with either URI.
Syntax
URI
/services/data/vXX.X/queryAll/queryLocator
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
queryLocator A string used to retrieve the next set of query results. If there are more results to
be retrieved, the previous set of QueryAll results contains the query locator in the
nextRecordsUrl field.
Example
Example Response Body
{
"totalSize": 3222,
"done": false,
294
Reference Query Performance Feedback (Beta)
"nextRecordsUrl": "/services/data/v57.0/query/01gRO0000016PIAYA2-500",
"records": [
{
"attributes": {
"type": "Contact",
"url": "/services/data/v57.0/sobjects/Contact/003RO0000035WQgYAM"
},
"Id": "003RO0000035WQgYAM",
"Name": "John Smith"
},
...
]
}
Syntax
URI
/services/data/vXX.X/query?explain=query
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
explain A SOQL query, report, or list view that you want to analyze. To analyze a query, provide the full
query in the request. To analyze a report or list view, provide the ID of the report or list view.
295
Reference Query Performance Feedback (Beta)
Parameter Description
If the SOQL query string is invalid, a MALFORMED_QUERY response is returned. If the report or list
view ID is invalid, an INVALID_ID response is returned.
Response body
The response body contains one or more plans that can be used to execute the query, report, or list view. The plans are sorted
from most optimal to least optimal. Each plan has the following information:
cardinality number The estimated number of records the query would return, based on index
fields, if any.
• For an example of how to use the explain parameter, see Get Feedback on Query Performance.
296
Reference Quick Actions
• For more information on SOQL in general, see the SOQL and SOSL Reference.
Quick Actions
Access global quick actions and object-specific quick actions. By using the POST method with this resource, you can create records
using a quick action. This resource is available in REST API version 28.0 and later.
When working with actions, also refer to sObject Quick Actions.
IN THIS SECTION:
Get Quick Actions
Gets a list of quick actions. This resource is available in REST API version 28.0 and later.
Create Records Using Quick Actions
Creates a record via a quick action. This resource is available in REST API version 28.0 and later.
Return Headers of Quick Actions
Returns only the headers that are returned by sending a GET request to the Quick Actions resource. This gives you a chance to see
the header values before retrieving the content of the resource. This resource is available in REST API version 28.0 and later.
Syntax
URI
/services/data/vXX.X/quickActions/
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None required
297
Reference Create Records Using Quick Actions
Example
Example Request
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/quickActions/ -H
"Authorization: Bearer token
"
Syntax
URI
/services/data/vXX.X/quickActions/
Formats
JSON, XML
HTTP Method
POST
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
curl -X POST
https://MyDomainName.my.salesforce.com/services/data/v57.0/quickActions/CreateCo
ntact -H "Authorization: Bearer token" -H "Content-Type: application/json" -d
@exampleRequestBody.json
298
Reference Return Headers of Quick Actions
action,
the field doesn’t appear in the quick action’s describe results. Then, when the quick action runs, the field isn’t available and an error
occurs for the missing field. If you don’t want the required field to appear in the quick action’s layout, set a default value for the field.
URI
When working with actions, also refer to sObject Quick Actions.
/services/data/vXX.X/quickActions/
Formats
JSON, XML
HTTP Method
HEAD
Authentication
Authorization: Bearer token
Parameters
None required
Example
Example Request
Syntax
URI
/services/data/vXX.X/sobjects/sObject/listviews/recent
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
None
299
Reference Recently Viewed Items
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/Account/listviews/recent
-H "Authorization: Bearer token"
{
"done" : true,
"listviews" : [ {
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCNMA0/describe",
"developerName" : "MyAccounts",
"id" : "00BD0000005WcCNMA0",
"label" : "My Accounts",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCNMA0/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCNMA0"
},{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK/describe",
"developerName" : "NewThisWeek",
"id" : "00BD0000005WcBeMAK",
"label" : "New This Week",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcBeMAK"
},{
"describeUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCFMA0/describe",
"developerName" : "AllAccounts",
"id" : "00BD0000005WcCFMA0",
"label" : "All Accounts",
"resultsUrl" :
"/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCFMA0/results",
"soqlCompatible" : true,
"url" : "/services/data/v57.0/sobjects/Account/listviews/00BD0000005WcCFMA0"
}],
"nextRecordsUrl" : null,
"size" : 3,
"sobjectType" : "Account"
}
300
Reference Record Count
This resource only accesses most recently used item information. If you want to modify the list of recently viewed items, you’ll need to
update recently viewed information directly by using a SOQL Query with a
FORVIEW or FORREFERENCE clause.
URI
/services/data/vXX.X/recent
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
limit An optional limit that specifies the maximum number of records to be returned. If this
parameter is not specified, the default maximum number of records returned is the
maximum number of entries in RecentlyViewed, which is 200 records per object.
Example
• For an example of retrieving a list of recently viewed items, see View Recently Viewed Records on page 77.
• For an example of setting records as recently viewed, see Mark Records as Recently Viewed on page 78.
Record Count
Lists information about object record counts in your organization.
This resource is available in REST API version 40.0 and later for API users with the “View Setup and Configuration” permission. The returned
record count is approximate, and does not include the following types of records:
•Deleted records in the recycle bin.
•Archived records.
Syntax
URI
/services/data/vXX.X/limits/recordCount?sObjects=objectList
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
301
Reference Record Count Response Body
Parameters
Parameter Description
sObjects A comma-delimited list of object names. If a listed object is not found in the org, it is
ignored and not returned in the response.
This parameter is optional. If this parameter is not provided, the resource returns
record
counts for all objects in the org.
Response body
Record Count Response Body
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/limits/recordCount?sObjects=Account
-H "Authorization: Bearer token"
{
"sObjects" : [ {
"count" : 3,
"name" : "Account"
},{
"count" : 10,
"name" : "Contact"
} ]
}
sObjects Record Count sObject Collection of sObject record count results. The order of objects in the
Result[] collection is not guaranteed to match the order of objects in the request.
JSON example
{
"sObjects" : [ {
302
Reference sObject Relevant Items
"count" : 3,
"name" : "Account"
},{
"count" : 10,
"name" : "Contact"
} ]
}
count Integer The number of records for the object in the org. This is an approximate
count and does not include soft-deleted or archived records.
JSON example
{
"count" : 10,
"name" : "Contact"
}
Note: The user’s global search scope includes the objects the user interacted with most in the last 30 days, including objects the
user pinned from the search results page in the Salesforce Classic.
Then, the resource finds more recent records for each most recently used (MRU) object until the maximum number of records, which
is 2,000, is returned.
This resource only accesses the relevant item information. Modifying the list of relevant items is not currently supported.
This resource is available in API version 35.0 and later.
Syntax
URI
/services/data/vXX.X/sobjects/relevantItems
Formats
JSON
HTTP Method
GET
303
Reference sObject Relevant Items
Authentication
Authorization: Bearer token
Parameters
Parameter Description
lastUpdatedId Optional. Compares the entire current list of relevant items to a previous version, if
available. Specify the
lastUpdatedId value returned in a previous response.
sobjects Optional. To scope the results to a particular object or set of objects, specify the name
for one or more sObjects.
Note: sObject names are case-sensitive.
sobject.lastUpdatedId Optional. Compares the current list of relevant items for this particular object to a
previous version, if available. Specify the
lastUpdatedId value returned in a
previous response.
Note: You can only specify this parameter for the sObjects specified in the
sobjects parameter.
Response header
The response contains headers unique to this resource.
lastUpdatedId string A unique code that can be used in subsequent calls to compare the
results for a complete result set with the results in this response list.
If a response was previously requested for the current user,
newResultSetSinceLastQueryboolean (true
or false
)
indicates
whether the current response matches the previous response, or the
one specified by a
Response body lastUpdatedId.
The response contains an array of records for each object returned, including the following information for each record.
key ID The first 3 characters of the sObject’s ID that indicates the object type.
304
Reference Get Knowledge Language Settings
Example
See View Relevant Items.
Syntax
URI
/services/data/vXX.X/knowledgeManagement/settings
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None required
Request parameters
None
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/knowledgeManagement/settings
-H "Authorization: Bearer token"
{
"defaultLanguage" : "en_US",
"knowledgeEnabled" : true,
"languages" : [ {
"active" : true,
"name" : "en_US"
},{
"active" : true,
"name" : "it"
},{
"active" : true,
"name" : "zh_CN"
305
Reference Search
},{
"active" : true,
"name" : "fr"
} ]
}
Search
Executes the specified SOSL search. The search string must be URL-encoded.
For more information on SOSL see the SOQL and SOSL Reference.
Syntax
URI
/services/data/vXX.X/search/?q=SOSL_searchString
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
Example
See Search for a String on page 61.
Syntax
URI
/services/data/vXX.X/search/scopeOrder
306
Reference Search Result Layouts
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Example
See Get the Default Search Scope and Order.
Syntax
URI
/services/data/vXX.X/search/layout/?q=commaDelimitedObjectList
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Response format
Example
See Get Search Result Layouts for Objects.
307
Reference Lightning Toggle Metrics
Syntax
URI
/services/data/vXX.X/sobjects/LightningToggleMetrics
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer tokens
Request parameters
Parameter Description
Example
SELECT sum(RecordCount) Total FROM LightningToggleMetrics WHERE MetricsDate =
LAST_MONTH AND Action = 'switchToAloha'
308
Reference Lightning Usage by Browser
Syntax
URI
/services/data/vXX.X/sobjects/LightningUsageByAppTypeMetrics
Formats
JSON, XML
HTTP methods
GET
Authentication
Parameter Description
Example
SELECT MetricsDate,user.profile.name,COUNT_DISTINCT(user.id) Total FROM
LightningUsageByAppTypeMetrics WHERE MetricsDate = LAST_N_DAYS:30 AND AppExperience =
'Salesforce Mobile' GROUP BY MetricsDate,user.profile.name
Syntax
URI
/services/data/vXX.X/sobjects/LightningUsageByBrowserMetrics
Formats
JSON, XML
309
Reference Lightning Usage by Page
HTTP methods
GET
Authentication
Parameter Description
RecordCountEPT Number of records for a page/browser where the valid EPT was recorded.
Example
Example Request Body
310
Reference Lightning Usage by FlexiPage
Syntax
URI
/services/data/vXX.X/sobjects/LightningUsageByPageMetrics
Formats
JSON, XML
HTTP methods
GET
Authentication
Parameter Description
RecordCountEPT Number of records for a page/user where the valid EPT was recorded.
Example
SELECT TotalCount FROM LightningUsageByPageMetrics ORDER BY PageName ASC NULLS FIRST LIMIT
10
311
Reference Lightning Exit by Page Metrics
Syntax
URI
/services/data/vXX.X/sobjects/LightningUsageByFlexiPageMetrics
Formats
JSON, XML
HTTP methods
GET
Authentication
Parameter Description
FlexiPageNameOrId Namespace
FlexiPage and file name, or Page ID of
files.
FlexiPageType The
FlexiPage type. For example, record details are displayed using
RecordPage" type.
MetricsDate
The date the metric was recorded.
RecordCountEPT
Number of records for a
SumEPT FlexiPage type, where the valid EPT was recorded.
TotalCount
Sum of the EPT values for a record
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/sobjects/LightningUsageByFlexiPageM
-H "Authorization: Bearer token"
312
Reference Salesforce Scheduler Resources
• Tooling API
Syntax
URI
/services/data/vXX.X/sobjects/LightningExitByPageMetrics
Formats
JSON, XML
HTTP methods
GET
Authentication
Parameter Description
PageName Current Page from which User Switched from Lightning to Aloha
Example
SELECT PageName PageName, SUM(RecordCount) Total FROM LightningExitByPageMetrics
WHERE MetricsDate = Last_N_DAYS:7 GROUP BY PageName ORDER BY SUM(RecordCount) Desc
Limit 10
IN THIS SECTION:
Scheduling
Returns a list of available Salesforce Scheduler REST resources and corresponding URIs. This resource is available in REST API version
45.0 and later.
Get Appointment Slots
Returns a list of available appointment time slots for a resource based on given work type group and territories. This resource is
available in REST API version 45.0 and later.
Get Appointment Candidates
Returns a list of available service resources (appointment candidates) based on work type group and service territories. This resource
is available in REST API version 45.0 and later.
Request Bodies
313
Reference Scheduling
Response Bodies
SEE ALSO:
Connect REST API Developer Guide: Lightning Scheduler Resources
Scheduling
Returns a list of available Salesforce Scheduler REST resources and corresponding URIs. This resource is available in REST API version
45.0 and later.
Syntax
URI
/services/data/vXX.X/scheduling/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Example
Example Response Body
{
"getAppointmentCandidates" : "/services/data/v57.0/scheduling/getAppointmentCandidates",
"getAppointmentSlots" : "/services/data/v57.0/scheduling/getAppointmentSlots"
}
prerequisites
that you can consider while setting up data.
•Set up Salesforce Scheduler before making your requests. The setup includes creating or configuring Service Resources, Service
Territory Members, Work Type Groups, Work Types, Work Type Group Members, and Service Territory Work Types. See Set Up
Salesforce Scheduler for more information.
•Configure a work type mapped for each territory in the request body via Service Territory Work Type. Map the same work type to
the work type group, via work type group member.
The following factors affect how time slots are calculated and returned.
•Timezones that differ across operating hours are handled and results are always returned in UTC.
314
Reference Get Appointment Slots
• The resource must be marked as a required resource on the assigned resource object.
• The resource is considered unavailable If the status categories of the resource assigned to service appointments are other than
Canceled, CannotComplete, and Completed.
• Resource Absences of all types are considered unavailable from start to end.
• The following fields of Work Type records, if configured, are used to fine-tune time slot requirements. For more information, see
Create Work Types in Salesforce Scheduler.
Parameter Description
• Only the time slots within the period of 31 days from the start date are returned.
• Salesforce Scheduler uses multiple factors to calculate the earliest and latest appointment slots. See How Does Salesforce Scheduler
Determine Available Time Slots.
Note: If asset scheduling is enabled, you can provide an asset-based service resource in
requiredResourceIds to
retrieve available timeslots for the asset resource.
Syntax
URI
/services/data/vXX.X/scheduling/getAppointmentSlots
Formats
JSON, XML
HTTP methods
POST
Authentication
Authorization: Bearer token
Request body
No
allowConcurrentScheduling Boolean If true, allows scheduling of concurrent appointments in a time slot.
If false, concurrent appointments aren’t allowed. The default is false.
Available in API version 47.0 and later.
315
Reference Get Appointment Slots
No String The latest time that a time slot can end (inclusive).
endTime
The ID of the engagement channel type record. The availability of
engagementChannelTypeIdsNo String[]
time slots is filtered based on the engagement channel type
selected. This field is available in API version 56.0 and later.
316
Reference Get Appointment Slots
To determine the required fields in your request body, consider the following points:
Note:
• Provide either
• workTypeGroupId or workType in your request body, but not both
If
•
workType is given, then you must provide either id or durationInMinutes, but not both.
Response BodyIf
Execution id
of of
a successful request
the workType returns
is given, thethe
restresponse body fields
of workType containing a list of available time slots.
are optional.
timeSlots Yes Time Slots List of time slots included in each territory.
on page
324
[]
Example
Example Request Body
Using workTypeGroupId:
{
"startTime": "2019-01-23T00:00:00.000Z",
"endTime": "2019-02-28T00:00:00.000Z",
"workTypeGroupId": "0VSB0000000KyjBOAS",
"accountId": "001B000000qAUAWIA4",
"territoryIds": [
"0HhB0000000TO9WKAW"
],
"schedulingPolicyId": "0VrB0000000KyjB",
"requiredResourceIds": [
"0HnB0000000TO8gKAK"
],
"engagementChannelTypeIds": [
"0eFRM00000000Bv2AI"
]
}
Using workType:
{
"startTime": "2019-01-23T00:00:00.000Z",
317
Reference Get Appointment Candidates
"endTime": "2019-02-28T00:00:00.000Z",
"workType": {
"id": "08qRM00000003fkYAA"
},
"requiredResourceIds": [
"0HnB0000000TO8gKAK"
],
"territoryIds": [
"0HhRM00000003OZ0AY"
],
"accountId": "001B000000qAUAWIA4",
"schedulingPolicyId": "0VrB0000000KyjB",
"engagementChannelTypeIds": [
"0eFRM00000000Bv2AI"
]
}
{
"timeSlots": [
{
"endTime": "2019-01-21T19:15:00.000+0000",
"startTime": "2019-01-21T16:15:00.000+0000",
"territoryId": "0HhB0000000TO9WKAW"
},
{
"endTime": "2019-01-21T19:30:00.000+0000",
"startTime": "2019-01-21T16:30:00.000+0000",
"territoryId": "0HhB0000000TO9WKAW"
},
{
"endTime": "2019-01-21T19:45:00.000+0000",
"startTime": "2019-01-21T16:45:00.000+0000",
"territoryId": "0HhB0000000TO9WKAW"
}
]
}
prerequisites
that you can consider while setting up data.
•Set up Salesforce Scheduler before making requests. This setup includes creating or configuring Service Resources, Service Territory
Members, Work Type Groups, Work Types, Work Type Group Members, and Service Territory Work Types. See Set Up Salesforce
Scheduler for more information.
•The territory type of the Service Territory Member must be either Primary, Secondary, or Relocation. The Primary and Relocation
territory types are considered the same.
•The territory type of the Service Territory Member must be either Primary, Secondary, or Relocation. The Primary and Relocation
territory types are considered the same.
318
Reference Get Appointment Candidates
The following factors are considered for returning start time and end time of resources.
Resource Availability
Determined using service territory member, service territory, work type, and account operating hours fields.
Resource Unavailability
Determined by resource absences, existing appointments that the resource is assigned to. The resource must be marked as a
required resource for the appointment with a status that isn’t in closed, canceled, or completed.
Appointment Start Time Interval in the Scheduling Policy
Appointment start time interval field in the Scheduling Policy is used to determine when the appointment can start. This interval
can be 5, 10, 15, 20, 30, or 60. By default, it’s set to 15.
Work Type Duration
The end time is calculated as start time + duration of the work type.
Note: If asset scheduling is enabled, the response also includes asset-based candidates.
Syntax
URI
/services/data/vXX.X/scheduling/getAppointmentCandidates
Formats
JSON, XML
HTTP methods
POST
Request body
No
allowConcurrentScheduling Boolean If true, allows scheduling of concurrent appointments in a time slot.
If false, concurrent appointments aren’t allowed. The default is false.
This field is available in API version 47.0 and later.
319
Reference Get Appointment Candidates
engagementChannelTypeIdsNo String[] The ID of the engagement channel type record. The availability of
service resources is filtered based on the engagement channel
type selected. This field is available in API version 56.0 and later.
Note: This field supports only one engagement channel
type ID.
You can use engagement channel types with the
getAppointmentCandidates API only if:
•The Schedule Appointments Using Engagement Channels
setting is enabled in Salesforce Scheduler Settings in your
Salesforce org.
•Shifts are defined in the scheduling policy. For more information
on setting up shifts in scheduling policy, see Define Shift Rules
in Scheduling Policy.
Note: Engagement channel types are not supported
with operating hours rules in the scheduling policy.
filterByResources NoString[]A comma-separated list of service resource IDs. API returns only
eligible service resources that are both in the list and in the selected
service territory. The resources are sorted by the order in which the
resource IDs are passed. Available in API version 51.0 and later.
NoIntegerSpecify the maximum number of service resources that you want
resourceLimitApptDistribution
to show during appointment scheduling when appointment
distribution is enabled. Available in API version 53.0 and later.
Required ifStringThe ID of the work type group containing the work types that are
workTypeGroupId
workTypebeing performed.
isn’t given.
320
Reference Get Appointment Candidates
To determine the required fields in your request body, consider the following points:
Note:
• Provide either
• workTypeGroupId or workType in your request body, but not both
If
•
workType is given, then you must provide either id or durationInMinutes, but not both.
Response BodyIf
Execution id
of of
a successful request
the workType returns
is given, thethe
restresponse body fields
of workType containing a list of available appointment resources.
are optional.
Examples
Example Request Body
Using workTypeGroupId:
{
"startTime": "2019-01-23T00:00:00.000Z",
"endTime": "2019-02-30T00:00:00.000Z",
"workTypeGroupId": "0VSB0000000KyjBOAS",
"accountId": "001B000000qAUAWIA4",
"territoryIds": [
"0HhB0000000TO9WKAW"
],
"schedulingPolicyId": "0VrB0000000KyjB",
"engagementChannelTypeIds": [
"0eFRM00000000Bv2AI"
]
}
Using workTypeId:
{
"startTime": "2019-01-23T00:00:00.000Z",
"endTime": "2019-02-30T00:00:00.000Z",
"workType": {
"id": "08qRM00000003fkYAA"
},
"territoryIds": [
"0HhRM00000003OZ0AY"
],
"accountId": "001B000000qAUAWIA4",
"schedulingPolicyId": "0VrB0000000KyjB",
"engagementChannelTypeIds": [
"0eFRM00000000Bv2AI"
]
}
321
Reference Request Bodies
{
"candidates": [
{
"endTime": "2019-01-23T19:15:00.000+0000",
"resources": [
"0HnB0000000D2DsKAK"
],
"startTime": "2019-01-23T16:15:00.000+0000",
"territoryId": "0HhB0000000TO9WKAW",
"engagementChannelTypeIds": [
"0eFRM00000000Bv2AI"
]
},
{
"endTime": "2019-01-23T19:30:00.000+0000",
"resources": [
"0HnB0000000D2DsKAK"
],
"startTime": "2019-01-23T16:30:00.000+0000",
"territoryId": "0HhB0000000TO9WKAW",
"engagementChannelTypeIds": [
"0eFRM00000000Bv2AI"
]
},
{
"endTime": "2019-01-23T19:45:00.000+0000",
"resources": [
"0HnB0000000D2DsKAK"
],
"startTime": "2019-01-23T16:45:00.000+0000",
"territoryId": "0HhB0000000TO9WKAW",
"engagementChannelTypeIds": [
"0eFRM00000000Bv2AI"
]
}
]
}
Request Bodies
To perform a POST, PATCH, or PUT request, create a request body formatted in either XML or JSON. This chapter lists the request bodies.
IN THIS SECTION:
Work Type
Details about the type of work to be performed.
Skill Requirement
List of skills that are required to complete a particular task for a work type.
322
Reference Response Bodies
Work Type
Details about the type of work to be performed.
durationInMinutesInteger
Required if id is not Contains the event length, in minutes.
given.
No
timeframeStartI String The beginning of the timeframe.
No
nMinutes String The end of the timeframe.
No
timeframeEndInM String The time period before the appointment is considered as
unavailable.
inutes The time period after the appointment is considered as
String No
blockTimeAfterAppointmentInMinutes
blockTimeBefore unavailable.
The overlap of all operating hours from the account, work
AppointmentInMi String No
operatingHoursId type, service territory, and service territory member are
nutes considered while determining time slots.
Note: Provide either Id or durationInMinutes in the request body, but not both.
Skill Requirement
List of skills that are required to complete a particular task for a work type.
SkillLevel String No The level of the skill required. Skill levels can range from
zero to 99.99. Depending on your business needs, you might
want the skill level to reflect years of experience, certification
levels, or license classes.
Response Bodies
Successful execution of a request to a Salesforce Scheduler resource can return a response body either in JSON or XML format. For
example, the request to get appointment time slots returns a list of available time slots for a selection of work type group and territories.
323
Reference Response Bodies
IN THIS SECTION:
Time Slots
Describes the result of Get Appointments Slots request.
Candidates
Describes the result of Get Appointments Candidates request.
Time Slots
Describes the result of Get Appointments Slots request.
List of time slots available for each territory.
String[]
engagementChanneltypeIds The engagement channel type ID associated with this time slot. This
field is available in API version 56.0 and later.
The number of appointments available in the time slot.
Integer
remainingAppointments
Appointments available in a time slot =
Maximum number of appointments defined for the
time slot - Number of appointments scheduled
so far in the time slot
territoryId String The service territory associated with this time slot.
Candidates
Describes the result of Get Appointments Candidates request.
List of available service resources.
String[]
engagementChanneltypeIds The engagement channel type ID associated with this resource for that
time slot. This field is available in API version 56.0 and later.
List of service resource IDs that are available.
resources String[]
Important: At present, only one resource is returned on this list.
If there is more than one resource included in a territory, a new
child object is added for each resource in the response JSON
body.
324
Reference Search for Records Suggested by Autocomplete and Instant
Results
Element Description
Attributes The record’s object type and the URL for accessing the record.
Also includes the requested lookup fields’ values. For example, if you requested
fields=Id,Name, the result would include the ID and name.
The record’s Name field. In the absence of a standard Name field, the Title field is used
Name (or
Title)
for these objects:
• Dashboard
• Idea
• IdeaTheme
• Note
• Question
In the absence of a standard Name or Title field, the main identifying field is used. For
example, in cases, the Case Number is used.
The suggestions resource supports all searchable objects except the following.
• ContentNote
• Event
•External objects
• FeedComment
• FeedPost
• IdeaComment
• Pricebook2
• Reply
• TagDefinition
325
Reference Search for Records Suggested by Autocomplete and Instant
Results
• Task
Syntax
URI
/services/data/vXX.X/search/suggestions?q=searchString&sobject=objectTypes
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None required
Request parameters
Parameter Description
fields Optional. Used for creating lookup queries. Specify multiple fields using a
comma-separated list. Specifies which lookup fields to be returned in the response.
Optional. Available in API version 48.0 and later. Used to return additional dynamic
dynamicFields
fields. Specify multiple options using a comma-separated list. For example, if
dynamicFields=secondaryField then each suggested record in the results
contains an additional
Id and Name (or Title)field
basedbesides
on the next
eligible field in the search layout.
groupId Optional. Specifies one or more unique identifiers of one or more groups that the
question to return was posted to. Specify multiple groups using a comma-separated
list. This parameter is only applicable when the parameter type equals
question.
Don’t use with the
ignoreUnsupportedSObjects userId.
Optional. If an unsupported object is included in a request, this parameter indicates
what
false, action to is
an error take. If it’s set
returned. to set to true, the
If it’s
object is ignored and no error is returned. See the Unsupported Objects section for
limit reference.
false. The default is
Optional. Specifies the maximum number of suggested records to return. If a limit isn’t
specified, 5 records are returned by default. If there are more suggested records than
networkId the limit specified, the response body’s
hasMoreResults property is true.
Optional. Specifies one or more unique identifiers for the Experience Cloud sites to
return the question to. Specify multiple sites using a comma-separated list. This
q
parameter is only applicable when the parameter
type equals question or
parameter
sobject equals user.
Required. The user’s search query string, properly URL-encoded. Suggestions are
returned only if the user’s query string meets the minimum length requirements: one
character for queries in Chinese, Japanese, Korean, and Thai; three characters for all
326
Reference Search for Records Suggested by Autocomplete and Instant
Results
Parameter Description
other languages. Query strings that exceed the maximum length of 255 characters (or
200 consecutive characters without a space break) return an error.
Required. The objects that the search is scoped to, such as Account or offer__c.
sobject
If the
sobject value is feedItem, the type parameter is required and it must
have a value of
question.
Specify up to 10 objects with a comma-separated list. For example:
sobject=Account,Contact,Lead. To take advantage of the feature, activate
the CrossObjectTypeahead permission.
To specify the specific fields to return by object, use the following syntax with
multiple fields in a comma-separated list. The sobject is lowercase.
sobject=sobject.fields=fields
For example:
&sobject=Account,Contact,Lead&account.fields=Website,Ph
one &contact.fields=Phone
topicId Optional. Specifies the unique identifier of the single topic that the question to return
was tagged as. This parameter is only applicable when the parameter
type equals
question.
type Required when the
sobject value is feedItem. Including this parameter for all
other
userId sobject values doesn’t affect the query. Specifies that the type of Feed is
questions. Valid value:
question.
Optional. Specifies one or more unique identifiers of one or more users who
useSearchScope authored
the question to return. Specify multiple users using a comma-separated list. This
parameter is only applicable when the parameter type equals
question. Don’t use
with the
groupId.
Optional. Available in API version 40.0 and later. The default value is
false. If false,
the objects specified in the request are used to suggest records. If
true, in addition
to the objects specified in the request, the user's search scope is used to suggest
records.
The search scope is the list of objects a user uses most frequently.
•If the request doesn’t specify an object, use
useSearchScope=true.
•If
useSearchScope=true and the user's search scope is empty, the default
search scope is used to suggest records.
327
•Typically, only the first 10 objects are used to suggest records. However, an admin
can assign objects that are always considered when returning results. If configured,
up to 15 objects are used to suggest records. For more information about assigning
Reference Search for Records Suggested by Autocomplete and Instant
Results
Parameter Description
This example uses only the search scope.
.../search/suggestions?q=Acme&useSearchScope=true
This example uses the search scope and the Account object.
.../search/suggestions?q=Acme&sobject=Account&useSearchScope=true
where Optional. A filter that follows the same syntax as the SOQLWHERE clause. URLs encode
the expression.
Use the clause for an object, or globally for all compatible objects. An example of an
object-specific clause is:
account.where=name%20LIKE%20%27Smith%25%27. An
example of a
global clause is:
where=name%20LIKE%20%27Smith%25%27. The parameter
must be lower case. Any object-specific
where clauses override the global where
clause. You can’t use this parameter for the Question object.
To specify multiple entities, see the following example. This feature is available in
...search/suggestions?q=Smith
version 38.0 and later.
&sobject=Account,Contact,KnowledgeArticleVersion,CollaborationGroup,T
Example
Example Response Body
{
"autoSuggestResults" : [ {
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DH6WAAW"
328
Reference Search for Records Suggested by Autocomplete and Instant
Results
},
"Id" : "001xx000003DH6WAAW",
"Name" : "National Utility Service"
},{
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DHJ4AAO"
},
"Id" : "001xx000003DHJ4AAO",
"Name" : "National Utility Service"
},{
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DHscAAG"
},
"Id" : "001xx000003DHscAAG",
"Name" : "National Urban Technology Center"
}],
"hasMoreResults" : false,
"meta" : {
"nameFields" : [ {
"entityApiName" : "Account",
"fieldApiName" : "Name"
}],
"secondaryFields" : [ ]
}
}
{
"autoSuggestResults" : [ {
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DMEKAA4"
},
"Id" : "001xx000003DMEKAA4"
"Name" : "Joe Doe Printing"
},{
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DLjvAAG"
},
"Id" : "001xx000003DLjvAAGO"
"Name" : "Joe Doe Plumbing"
},{
{
"attributes" : {
"type" : "Contact",
"url" : "/services/data/v57.0/sobjects/Contact/003xx000004U9Y9AAK"
},
"Id" : "003xx000004U9Y9AAK"
329
Reference Search Suggested Article Title Matches
330
Reference Search Suggested Article Title Matches
The Suggest Article Title Matches resource is designed to return display-ready data about likely relevant articles. Articles are suggested
if their titles contain the entire query string, except stopwords, such as “a,” “for,” and “the.”
For example, a search for Backpackingfordesert returns the article, “Backpacking in the desert.”
Note: Articles with titles that include stopwords from the query string, such as “Backpacking for desert survival” in this example,
appear before matching articles with titles that don’t include the stopwords.
Stopwords at the end of the query string are treated as search terms.
Note: If the user’s search query contains quotation marks or wildcards, those symbols are automatically removed from the query
string in the URI along with any other special characters.
If the number of suggestions returned exceeds the limit specified in the request, the end of the response contains a field called
hasMoreResults. Its value is true if the suggestions returned are only a subset of the suggestions available, and false otherwise.
Syntax
URI
XX.X
/services/data/v searchString
/search/suggestTitleMatches?q=
&language= articleLanguage
&publishStatus= articlePublicationStatus
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None required
Request parameters
Parameter Description
articleTypes Optional. Three-character ID prefixes indicating the desired article types.You can specify
multiple values for this parameter in a single REST call, by repeating the parameter
name for each value.For example,
articleTypes=ka0&articleTypes=ka1.
categories Optional. The name of the data category group and name of the data category for
desired articles, expressed as a JSON mapping. You can specify multiple data category
group and data category pairs in this parameter. For example,
categories={"Regions":"Asia","Products":"Laptops"}.
Characters in the URL might need to be encoded. For this example,
categories=%7B%22Regions%22%3A%22Asia
%22%2C%22Products%22%3A%22Laptops%22%7D.
channel Optional. The channel where the matching articles are visible. Valid values:
•
AllChannels–Visible in all channels the user has access to
•
App–Visible in the internal Salesforce Knowledge application
331
Reference Search Suggested Article Title Matches
Parameter Descriptio
Pkb–Visible
n• in the public knowledge base
Csp–Visible
• in the Customer Portal
Prm–Visible
• in the Partner Portal
If
channel isn’t specified, the default value is determined by the type of user.
•
Pkb for a guest user
•
Csp for a Customer Portal user
•
Prm for a Partner Portal user
•
App for any other type of user
If
channel is specified, the specified value may not be the actual value requested,
because of certain requirements.
•For guest, Customer Portal, and Partner Portal users, the specified value must match
the default value for each user type. If the values don’t match or
AllChannels
language is specified,
Required. then
The language of the user’s query. Specifies the language that matching
App replaces
articles the specified
are written in. value.
•For all users other than guest,
Optional. Specifies the maximum Customer
number Portal, andtoPartner
of articles return.Portal users:
If there are more
limit
–If
suggested articles thanare
thespecified,
limit specified, the specified
response value
body’sishasMoreResults
Pkb, Csp, Prm, or App then the used.
property
–If is
true.
publishStatus AllChannels is specified, then App replaces the specified value.
Required. The article’s publication status. Valid values:
•
Draft–Articles aren’t published in Salesforce Knowledge.
•
Online–Articles are published in Salesforce Knowledge.
q •
Archived–Articles aren’t published and are available in Archived Articles view.
Required. The user’s search query string, properly URL-encoded. Suggestions are
returned only if the user’s query string meets the minimum length requirements: one
character for queries in Chinese, Japanese, and Korean, and three characters for all
topics other languages. Query strings exceeding the maximum length of 250 characters return
an error.
validationStatus Optional. The topic of the returned articles. For example:
topics=outlook&topics=email.
Optional. The validation status of returned articles.
332
Reference Search Suggested Queries
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/search/suggestTitleMat
ches? q=orange+banana&language=en_US&publishStatus=Online -H "Authorization:
Bearer token"
Example Response Body
{
"autoSuggestResults" : [ {
"attributes" : {
"type" : "KnowledgeArticleVersion",
"url" : "/services/data/v57.0/sobjects/KnowledgeArticleVersion/ka0D00000004CcQ"
},
"Id" : "ka0D00000004CcQ",
"UrlName" : "orange-banana",
"Title" : "orange banana",
"KnowledgeArticleId" : "kA0D00000004Cfz"
}],
"hasMoreResults" : false
}
Syntax
URI
XX.X
/services/data/v /search/suggestSearchQueries?q=searchString
&language= languageOfQuery
Formats
JSON, XML
HTTP methods
GET
333
Reference Search Suggested Queries
Authentication
Authorization: Bearer token
Request body
None required
Request parameters
Parameter Description
channel Optional. Specifies the Salesforce Knowledge channel where the article can be
viewed. Valid values:
•
AllChannels–Visible in all channels the user has access to
•
App–Visible in the internal Salesforce Knowledge application
•
Pkb–Visible in the public knowledge base
•
Csp–Visible in the Customer Portal
•
Prm–Visible in the Partner Portal
If
channel isn’t specified, the default value is determined by the type of user.
•
Pkb for a guest user
•
Csp for a Customer Portal user
•
Prm for a Partner Portal user
•
App for any other type of user
If
language Required. The is
channel language of the
specified, the user’s query.
specified value may not be the actual value requested,
because
Optional.ofSpecifies
certain requirements.
the maximum number of suggested searches to return. If there are
limit
•For
moreguest, Customer
suggested Portal,
queries thanand
the Partner Portal users,
limit specified, the specified
the response body’svalue must match
the default value for eachproperty
hasMoreResults user type. If theis
values
true.don’t match or
AllChannels
q is specified,
Required. then
The user’s search query string, properly URL-encoded. Suggestions are
App replaces
returned onlythe specified
if the value.string meets the minimum length requirements: one
user’s query
character
•For for queries
all users in Chinese,
other than Japanese,Portal,
guest, Customer and Korean, and three
and Partner Portalcharacters
users: for all
other languages. Query strings exceeding the maximum length of 250 characters return
–If
an error.
Pkb, Csp, Prm, or App are specified, then the specified value is used.
–If
AllChannels is specified, then App replaces the specified value.
334
Reference Salesforce Surveys Translation Resources
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/search/suggestSearchQu
eries? q=app&language=en_US -H "Authorization: Bearer token"
{
"autoSuggestResults" : [ {
"0" : "apple",
"1" : "apple banana",
}],
"hasMoreResults" : false
}
IN THIS SECTION:
335
Reference Add or Change the Translation of a Survey Field
Get the Translated Values of Multiple Survey Fields in One or More Languages
After survey fields are translated into one or more languages, you can view the translated values of multiple survey fields in the
translated languages. This resource is available in REST API versions 48.0 and later.
Syntax
URI
/services/data/vXX.X/localizedvalue/record/developerName/language
Formats
JSON
HTTP methods
POST
Authentication
Authorization: Bearer token
Request body JSON example
{
"value": "China"
}
Request parameters
Parameter Description
Response parameters
Parameter Description
336
Reference Add or Update the Translated Value of Multiple Survey Fields
in One or More Languages
Parameter Description
Example
{
"createdBy": "005xxx",
"createdDate": "2018-09-14T00:10:30Z",
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "zh_CN",
"value": " ",
"isOutOfDate": true
}
Syntax
URI
/services/data/vXX.X/localizedvalue/records/upsert
Formats
JSON
HTTP methods
POST
Request body JSON example
[
{
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "en_US",
"value": "China"
},
{
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "zh_CN",
"value": " "
}
]
337
Reference Delete the Translated Value of a Survey Field
Request parameters
Parameter Description
Response parameters
Parameter Description
Example
[
{
"createdBy": "005xxx",
"createdDate": "2018-09-14T00:10:30Z",
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "en_US",
"value": "China",
"isOutOfDate": false
},
{
"createdBy": "005xxx",
"createdDate": "2018-09-14T00:10:30Z",
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "zh_CN",
"value": " ",
"isOutOfDate": false
}
]
338
Reference Delete the Translated Value of Multiple Survey Fields in One
or More Languages
Note: This URI can only be used for the flow process type Survey.
Syntax
URI
/services/data/vXX.X/localizedvalue/record/developerName/language
Formats
JSON
HTTP methods
DELETE
Request parameters
Parameter Description
Syntax
URI
/services/data/vXX.X/localizedvalue/records/delete
Formats
JSON
HTTP methods
POST
Request body JSON example
[
{
339
Reference Get Translated Value of a Survey Field
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "en_US"
},
{
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "zh_CN"
}
]
Request parameters
Parameter Description
language Required. Language into which the flow field was translated.
Syntax
URI
/services/data/vXX.X/localizedvalue/record/developerName/language
Formats
JSON
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None
Request parameters
developerName Required. The developer name of the flow field. For example,
Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel
340
Reference Get the Translated Values of Multiple Survey Fields in One or
More Languages
Response parameters
Parameter Description
Example
{
"createdBy": "005xxx",
"createdDate": "2018-09-14T00:10:30Z",
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "zh_CN",
"value": " ",
"isOutOfDate": true
}
Syntax
URI
/services/data/vXX.X/localizedvalue/records/get
Formats
JSON
HTTP methods
POST
341
Reference Get the Translated Values of Multiple Survey Fields in One or
More Languages
[
{
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "en_US"
},
{
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "zh_CN"
}
]
Request parameters
Parameter Description
language Required. Language into which the flow field was translated.
Response parameters
Parameter Description
Example
[
{
"createdBy": "005xxx",
"createdDate": "2018-09-14T00:10:30Z",
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "en_US",
"value": "China",
"isOutOfDate": true
},
{
"createdBy": "005xxx",
"createdDate": "2018-09-14T00:10:30Z",
"developerName": "Flow.Flow.MyFlow.1.Choice.Choice_1_Master.InputLabel",
"language": "zh_CN",
342
Reference Tabs
Tabs
Returns a list of all tabs—including Lightning page tabs—available to the current user, regardless of whether the user has chosen to
hide tabs via the All Tabs (+) tab customization feature. This resource is available in REST API version 31.0 and later.
IN THIS SECTION:
Retrieve Tabs
Retrieves a list of all tabs—including Lightning page tabs—available to the current user, regardless of whether the user has chosen
to hide tabs via the All Tabs (+) tab customization feature. This resource is available in REST API version 31.0 and later.
Return Headers Using Tabs
Returns only the headers that are returned by a GET request to Tabs resources. This gives you a chance to see header values before
retrieving the content of the resource. This resource is available in REST API version 31.0 and later.
Retrieve Tabs
Retrieves a list of all tabs—including Lightning page tabs—available to the current user, regardless of whether the user has chosen to
hide tabs via the All Tabs (+) tab customization feature. This resource is available in REST API version 31.0 and later.
Syntax
URI
/services/data/vXX.X/tabs/
Formats
JSON, XML
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None
Request parameters
None
Example
Example Request
343
Reference Retrieve Tabs
[...,
"colors" : [ {
"color" : "6f7ccb",
"context" : "primary",
"theme" : "theme4"
},{
"color" : "236FBD",
"context" : "primary",
"theme" : "theme3"
}],
"custom" : false,
"iconUrl" : "https://MyDomainName.my.salesforce.com/img/icon/accounts32.png",
"icons" : [ {
"contentType" : "image/png",
"height" : 32,
"theme" : "theme3",
"url" : "https://MyDomainName.my.salesforce.com/img/icon/accounts32.png",
"width" : 32
},{
"contentType" : "image/png",
"height" : 16,
"theme" : "theme3",
"url" : "https://MyDomainName.my.salesforce.com/img/icon/accounts16.png",
"width" : 16
},{
"contentType" : "image/svg+xml",
"height" : 0,
"theme" : "theme4",
"url" : "https://MyDomainName.my.salesforce.com/img/icon/t4/standard/account.svg",
"width" : 0
},{
"contentType" : "image/png",
"height" : 60,
"theme" : "theme4",
"url" : "https://MyDomainName.my.salesforce.com/img/icon/t4/standard/account_60.png",
"width" : 60
},{
"contentType" : "image/png",
"height" : 120,
"theme" : "theme4",
"url" :
"https://MyDomainName.my.salesforce.com/img/icon/t4/standard/account_120.png",
"width" : 120
}],
"label" : "Accounts",
"miniIconUrl" : "https://MyDomainName.my.salesforce.com/img/icon/accounts16.png",
"name" : "standard-Account",
"sobjectName" : "Account",
344
Reference Return Headers Using Tabs
"url" : "https://MyDomainName.my.salesforce.com/001/o",
...]
Syntax
URI
/services/data/vXX.X/tabs/
Formats
JSON, XML
HTTP methods
HEAD
Authentication
Authorization: Bearer token
Request body
None
Request parameters
None
Example
Return headers of request for all tabs
Themes
Gets the list of icons and colors used by themes in the Salesforce application. Theme information is provided for objects in your
organization that use icons and colors in the Salesforce UI. This resource is available in REST API version 29.0 and later.
The
If-Modified-Since header can be used with this resource, with a date format of EEE,ddMMMyyyyHH:mm:ss
z. When this header is used, if the object metadata has not changed since the provided date, a 304NotModified status code
is returned, with no response body.
Syntax
URI
/services/data/vXX.X/theme
Formats
JSON, XML
345
Reference Themes
HTTP methods
GET
Authentication
Authorization: Bearer token
Request body
None
Request parameters
None
Response data
An array of theme items. Each theme item contains the following fields:
name string Name of the object that the theme colors and icons are associated with.
color string The color described in Web color RGB format, for example, “00FF00”.
context string The color context, which determines whether the color is the main color
(“primary”) for the object, or not.
height number The icon’s height in pixels. If the icon content type is an SVG type, height and
width values are not used.
346
Reference Themes
Example
{
"themeItems" : [
{
"name" : "Merchandise__c",
"icons" : [
{
"contentType" : "image/png",
"width" : 32,
"url" : "https:// MyDomainName.my.salesforce.com/img/icon/computer32.png",
"height" : 32,
"theme" : "theme3"
},
{
"contentType" : "image/png",
"width" : 16,
"url" : "https:// MyDomainName.my.salesforce.com/img/icon/computer16.png",
"height" : 16,
"theme" : "theme3"
}],
"colors" : [
{
"context" : "primary",
"color" : "6666CC",
"theme" : "theme3"
},
{
"context" : "primary",
"color" : "66895F",
"theme" : "theme4"
},
...
}
347
Reference Composite
...
}
Composite
Executes a series of REST API requests in a single POST request, or retrieves a list of other composite resources with a GET request.
IN THIS SECTION:
Send Multiple Requests Using Composite
Executes a series of REST API requests in a single call. You can use the output of one request as the input to a subsequent request.
The response bodies and HTTP statuses of the requests are returned in a single response body. The entire series of requests counts
as a single call toward your API limits.
Retrieve a List of Composite Resources
Retrieves a list of URIs for other composite resources.
{
"compositeRequest" : [{
"method" : "POST",
"url" : "/services/data/v57.0/sobjects/Account",
"referenceId" : "refAccount",
"body" : { "Name" : "Sample Account" }
},{
"method" : "POST",
"url" : "/services/data/v57.0/sobjects/Contact",
"referenceId" : "refContact",
"body" : {
"LastName" : "Sample Contact",
"AccountId" : "@{refAccount.id}"
}
}]
}
You can specify whether an error in a subrequest causes the whole composite request to roll back or just the subrequests that depend
on it. You can also specify headers for each subrequest.
Composite is supported for the following resources.
348
Reference Send Multiple Requests Using Composite
Note: You can have up to 25 subrequests in a single call. Up to 5 of these subrequests can be sObject Collections or query
Syntax
operations, including Query and QueryAll requests.
URI
/services/data/vXX.X/composite
Formats
JSON
HTTP method
POST
Authentication
Authorization: Bearer token
Parameters
None required
Request body
Composite Request Body
Response body
Composite Response Body
Example
For examples of using the Composite resource, see Execute Dependent Requests in a Single API Call and Update an Account, Create a
Contact, and Link Them with a Junction Object.
IN THIS SECTION:
Composite Subrequest Result
The composite subrequest result describes the result for a subrequest.
349
Reference Send Multiple Requests Using Composite
Properties
allOrNone Boolean Specifies what to do when an error occurs while processing a Optional
subrequest. If the value is
true, the entire composite request
is rolled back. The top-level request returns HTTP 200 and
includes responses for each subrequest.
If the value is
false, the remaining subrequests that don’t
depend on the failed subrequest are executed. Dependent
subrequests aren’t executed.
In either case, the top-level request returns HTTP 200 and
includes responses for each subrequest.
Note: If the Composite request includes an sObject
Collections request, the sObject Collections request’s
allOrNone parameter can also affect the results. See
allOrNone Parameters in Composite and Collections
Requests.
Boolean
collateSubrequests Controls whether the API collates unrelated subrequests toOptional
bulkify them (
true) or not (false).
When subrequests are collated, the processing speed is faster,
but the order of execution is not guaranteed (unless there is an
explicit dependency between the subrequests).
If collation is disabled, then the subrequests are executed in the
order in which they are received.
Subrequests that contain valid HTTP headers are not collated.
In API version 49.0 and later, the default value is
true. In version
48.0, the default value is
false.
Subrequests can be collated if they meet these conditions:
•The HTTP methods are the same.
•The API versions of the resources are the same.
•The parents of the resources are
/sobjects resources.
•No more than five sObjects resources are present across a
grouping of subrequests.
Note: Collation can cause issues if there are implicit but
not explicit dependencies between items. For example,
consider a request that creates
•an Account
•a Contact related to the Account
•a custom object that has a trigger dependent on the
account name.
350
Reference Send Multiple Requests Using Composite
JSON example
{
"allOrNone" : true,
"collateSubrequests": true,
"compositeRequest" : [{
Composite Subrequest
},{
Composite Subrequest
},{
Composite Subrequest
}]
}
Composite Subrequest
Contains the resource, method, headers, body, and reference ID for the subrequest.
Properties
body Varies The input body for the subrequest.Optional The type depends on the
request specified in the
url property.
httpHeaders Map<String, Request headers and their values to include with the subrequest.Optional
String>
You can include any header supported by the requested resource
except for the following three headers.
• Accept
• Authorization
• Content-Type
351
Reference Send Multiple Requests Using Composite
String The method to use with the requested resource. Possible valuesRequired
method
are
POST, PUT, PATCH, GET, and DELETE (case-sensitive).
For a list of valid methods, refer to the documentation for the
requested resource.
String Reference ID that maps to the subrequest’s response and canRequired
referenceId
be used to reference the response in later subrequests. You can
reference the
referenceId in either the body or URL of a
subrequest. Use this syntax to include a reference:
@{referenceId.FieldName}.
You can use two operators with the reference ID.
The
. operator references a field on a JSON object in the
response. For example, let’s say you retrieve an account record’s
data in one subrequest and assign the reference ID
Account1Data to the output. You can refer to the account’s
name in later subrequests like this:
@{Account1Data.Name}.
The
[] operator indexes a JSON collection in the response. For
example, let’s say you request basic account information with
the sObject Basic Information resource in one subrequest and
assign the reference ID
AccountInfo to the output. Part of
the response includes a collection of recently created accounts.
You can refer to the ID of the first account in the recent items
collection like this:
@{AccountInfo.recentItems[0].Id}.
You can use each operator recursively as long as it makes sense
in the context of the response. For example, to refer to the billing
city component of an account’s compound address field:
@{NewAccount.BillingAddress.city}.
referenceId is case-sensitive, so pay close attention to the
case ofNote
the fields you’re referring to. See Usage.
: • The
referenceId must start with a letter or a
number.
•
The
referenceId must not contain anything
besides letters, numbers, or underscores (’_’).
352
Reference Send Multiple Requests Using Composite
JSON examples
Example 1
{
"method" : "GET",
"url" : "/services/data/v57.0/sobjects/Account/describe",
"httpHeaders" : { "If-Modified-Since" : "Tue, 31 May 2016 18:00:00 GMT"
}, "referenceId" : "AccountInfo"
}
Example 2
{
"method" : "POST",
"url" :
"/services/data/v57.0/sobjects/Account",
"referenceId" : "refAccount",
} "body" : { "Name" : "Sample Account" }
Example 3
{
"method" : "GET",
"url" :
"/services/data/v57.0/sobjects/Account/@{refAccount.id}",
} "referenceId" : "NewAccountFields"
Example 4
{
"method" : "PATCH",
"url" :
"/services/data/v57.0/sobjects/Account/ExternalAcctId__c/ID12345",
"referenceID" : "NewAccount",
} "body" : { "Name" : "Acme" }
Usage
Because referenceId is case-sensitive, it’s important to note the case of the fields that you’re referring to. The same field can
use different cases in different contexts. For example, when you create a record, the ID field appears as
id in the response. But
when you access a record’s data with the sObject Rows resource, the ID field appears as
Id. In Example 3, the @{refAccount.id}
reference is valid because
refAccount refers to the response from a POST like that shown in Example 2. If you use Id instead
(mixed case rather than all lowercase), as in
@{refAccount.Id}, you get an error when sending the request because the
353
reference ID uses the wrong case.
Reference Send Multiple Requests Using Composite
Note: You can have up to 25 subrequests in a single call. Up to 5 of these subrequests can be sObject Collections or query
operations, including Query and QueryAll requests.
Composite Results
Properties
JSON example
{
"compositeResponse" : [{
Composite Subrequest Result
},{
Composite Subrequest Result
},{
Composite Subrequest Result
}]
}
Properties
body The type depends on the response type of The response body of this subrequest. See
the subrequest. the documentation for the subrequest
resource for more information.
If the subrequest returns an error, the body
includes the error code and message. For
more details on error responses, see Status
Codes and Error Responses.
Response headers and their values for this
httpHeaders Map<String, String> subrequest. The Composite resource doesn’t
support the Content-Length header, so
subrequest responses don’t include this
354
Reference Send Multiple Requests Using Composite
Example
{
"body": {
"id": "001R00000064wdtIAA",
"success": true,
"errors": []
},
"httpHeaders": {
"Location": "/services/data/v57.0/sobjects/Account/001R00000064wdtIAA"
},
"httpStatusCode": 201,
"referenceId": "refAccount"
}
The following example shows the response for a subrequest that had an error while trying to create a Contact:
{
"body" : [ {
"message" : "Email: invalid email address: Not a real email address",
"errorCode" : "INVALID_EMAIL_ADDRESS",
"fields" : [ "Email" ]
}],
"httpHeaders" : { },
"httpStatusCode" : 400,
"referenceId" : "badContact"
}
355
Reference Send Multiple Requests Using Composite
{
"allOrNone": false,
"compositeRequest": [
{
"method": "POST",
"body": {
"name": "Cloudy Consulting"
},
"url": "/services/data/vXX.X/sobjects/Account/",
"referenceId": "refNewAccount[1]"
},
{
"method": "POST",
"body": {
"AccountId": "@{refNewAccount[1].id}",
"FirstName": "Mary",
"LastName": "Smith”
},
"url": "/services/data/vXX.X/sobjects/Contact",
"referenceId": "refNewContact"
},
{
"method": "POST",
"body": {
"name": "Easy Spaces"
},
"url": "/services/data/vXX.X/sobjects/Account/",
"referenceId": "refNewAccount2"
}
]
}
HTTP/1.1 200 OK
{
"compositeResponse" : [
{
"body" : {
"id" : "001R0000006hfeZIAQ",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v51.0/sobjects/Account/001R0000006hfeZIAQ"
},
"httpStatusCode" : 201,
"referenceId" : "refNewAccount[1]"
},
356
Reference Send Multiple Requests Using Composite
{
"body" : [
{
"errorCode" : "PROCESSING_HALTED",
"message" : "Invalid reference specified. No value for refNewAccount[1].id
found in refNewAccount.
}
],
"httpHeaders" : { },
"httpStatusCode" : 400,
"referenceId" : "refNewContact"
},
{
"body" : {
"id" : "001R0000006hfeeIAA",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v51.0/sobjects/Account/001R0000006hfeeIAA"
},
"httpStatusCode" : 201,
"referenceId" : "refNewAccount2"
}
]
}
The two accounts are created (even though the first account uses illegal characters in its reference ID). But the attempt to create a
contact (using the reference ID containing illegal characters) fails.
Responses for Version 51.0 and Earlier in Previous Releases
The response shown above is that for the Summer ’21 release and later. In releases before Summer ’21, problematic reference IDs in
the response were truncated if the IDs contained ‘(’ or ‘[’. So the response would have been:
{
"compositeResponse" : [
{
"body" : {
"id" : "001R0000006hfeZIAQ",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v51.0/sobjects/Account/001R0000006hfeZIAQ"
},
"httpStatusCode" : 201,
"referenceId" : "refNewAccount"
},
...
}
Starting with the Summer ’21 release, problematic reference IDs are no longer truncated. This change makes it easier to match the
parts of the response to the request.
Version 52.0 and Later
357
Reference Send Multiple Requests Using Composite
In API version 52.0 and later, any illegal characters in reference IDs cause the whole request to fail. The response to the example above
is:
Summary
"compositeRequest" : [
358
Reference Send Multiple Requests Using Composite
{
"method" : "GET",
"url" :
"/services/data/v51.0/sobjects/Contact/003RO0000016kOuYAI?fields=FirstName,LastName",
"referenceId" : "refContact"
},
{
"method" : "POST",
"url" : "/services/data/v51.0/sobjects/Contact",
"referenceId" : "newContact",
"body" : {
"FirstName" : "@{refContact.FirstName}",
"LastName" : "@{refContact.LastName}",
"AccountId" : "001RO000001nGCdYAM"
}
}
]
}
{
"compositeResponse" : [
{
"body" : {
"attributes" : {
"type" : "Contact",
"url" : "/services/data/v51.0/sobjects/Contact/003RO0000016kOuYAI"
},
"FirstName" : null,
"LastName" : "Wong",
"Id" : "003RO0000016kOuYAI"
},
"httpHeaders" : { },
"httpStatusCode" : 200,
"referenceId" : "refContact"
},
{
"body" : [
{
"errorCode" : "PROCESSING_HALTED",
"message" : "Invalid reference specified. No value for refContact.FirstName
found in refContact.
Provided referenceId ('refContact.FirstName') must start with a letter or a
number,
and it can contain only letters, numbers and underscores ('_')."
}
],
"httpHeaders" : { },
"httpStatusCode" : 400,
"referenceId" : "newContact"
}
359
Reference Send Multiple Requests Using Composite
]
}
That example assumes that allOrNone is set to false. If it’s true, the whole composite request is rolled back. See allOrNone Parameters
in Composite and Collections Requests.
Responses for Version 52.0 and Later
In API version 52.0 and later, the request succeeds.
{
"compositeResponse" : [
{
"body" : {
"attributes" : {
"type" : "Contact",
"url" : "/services/data/v51.0/sobjects/Contact/003RO0000016kOuYAI"
},
"FirstName" : null,
"LastName" : "Wong",
"Id" : "003RO0000016kOuYAI"
},
"httpHeaders" : { },
"httpStatusCode" : 200,
"referenceId" : "refContact"
},
{
"body" : {
"id" : "003RO0000016kRAYAY",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" : "/services/data/v51.0/sobjects/Contact/003RO0000016kRAYAY"
},
"httpStatusCode" : 201,
"referenceId" : "newContact"
}
]
}
Behavior for References to Fields That Aren’t Specified in the Parent Request
In dependent subrequests, you must always only use fields that are explicitly selected in parent requests. If this practice isn’t followed,
the API’s behavior depends on the API version. (The pertinent API version is that used to make the composite request. That version isn’t
necessarily the same as the API version specified in the
url parameters in the subrequests.)
For example, consider the following request. It attempts to:
1.Locate a specific Contact.
2.Use
@{refContact.records[0].AccountId} to get that Contact’s Account ID.
However, the parentMyDomainName
request doesn’t explicitly query for the XX.X/composite -H "Authorization:
POST https:// .my.salesforce.com/services/data/v
AccountId.
Bearer token"
360
Reference Send Multiple Requests Using Composite
{
"compositeRequest" : [
{
"method" : "GET",
"url" : "/services/data/v51.0/query?q= select Id, Account.Name from Contact where
Id='003RO0000016kOuYAI'",
"referenceId" : "refContact"
},
{
"method" : "GET",
"url" : "/services/data/v50.0/query?q=select Name from Account where Id =
'",
'@{refContact.records[0].AccountId}
"referenceId" : "refAccount"
}
]
}
Note: The fact that a request like this sometimes succeeds should never be relied upon. If you plan to use a field from a parent
request’s result, you should always explicitly select that field in the parent request.
Responses for Version 52.0 and Later
In API version 52.0 and later, the request always fails:
{
"compositeResponse" : [
{
"body" : {
"totalSize" : 1,
"done" : true,
"records" : [
{
"attributes" : {
"type" : "Contact",
"url" : "/services/data/v51.0/sobjects/Contact/003RO0000016kOuYAI"
},
"Id" : "003RO0000016kOuYAI",
"Account" : {
"attributes" : {
"type" : "Account",
"url" : "/services/data/v51.0/sobjects/Account/001RO000001nGbUYAU"
},
"Name" : "City Medical Center"
}
}
]
},
"httpHeaders" : { },
"httpStatusCode" : 200,
"referenceId" : "refContact"
361
Reference Retrieve a List of Composite Resources
},
{
"body" : [
{
"errorCode" : "
PROCESSING_HALTED",
"message" : " Invalid reference specified. No value for
refContact.records[0].AccountId found in refContact.
Provided referenceId ('refContact.records[0].AccountId') must start with a
letter or a number, and it can contain
only letters, numbers and underscores ('_')."
}
],
"httpHeaders" : { },
"httpStatusCode" : 400,
"referenceId" : "refAccount"
}
]
}
To make such a request work, you must explicitly obtain the AccountId in the parent request:
{
"compositeRequest" : [
{
"method" : "GET",
"url" : "/services/data/v51.0/query?q=select Id, Account.Name, AccountId from
Contact where Id='003RO0000016kOuYAI'",
"referenceId" : "refContact"
},
{
"method" : "GET",
"url" : "/services/data/v50.0/query?q=select Name from Account where Id =
'@{refContact.records[0].AccountId}'",
"referenceId" : "refAccount"
}
]
}
Syntax
URI
/services/data/vXX.X/composite
Formats
JSON
HTTP method
GET
362
Reference Composite Graph
Authentication
Authorization: Bearer token
Parameters
None required
Request body
None required
Example
Example Request
curl https://MyDomainName.my.salesforce.com/services/data/v57.0/composite/ -H
"Authorization: Bearer token
"
{
"tree": "/services/data/v54.0/composite/tree",
"batch": "/services/data/v54.0/composite/batch",
"sobjects": "/services/data/v54.0/composite/sobjects",
"graph": "/services/data/v54.0/composite/graph"
}
Composite Graph
The composite graph resource lets you submit composite graph operations. This resource is available in REST API version 50.0 and later.
Note: The response bodies and HTTP statuses of the requests are returned in a single response body. The entire request counts
as a single call toward your API limits.
Syntax
URI
/services/data/vXX.X/composite/graph
Formats
JSON
HTTP methods
POST
Authentication
Authorization: Bearer token
Request parameters
None
Request Body
{
"graphId" : "graphId",
363
Reference Composite Graph
"compositeRequest" : [
compositeSubrequest
,
compositeSubrequest
...
] ,
}
Response Body
{
"graphs" : [
{
"graphId" : "graphId",
"graphResponse" : {
"compositeResponse" : [
compositeSubrequestResult,
compositeSubrequestResult,
compositeSubrequestResult,
...
]
},
"isSuccessful" : flag
},
...
]
}
compositeResponse Array of composite subrequest results on Results for each node in the graph.
page 354.
Boolean
isSuccessful Whether this graph was processed
successfully (
true) or not (false).
Example
Example Request
364
Reference Composite Graph
{
"graphs" : [
{
"graphId" : "1",
"compositeRequest" : [
{
"url" : "/services/data/v57.0/sobjects/Account/",
"body" : {
"name" : "Cloudy Consulting"
},
"method" : "POST",
"referenceId" : "reference_id_account_1"
},
{
"url" :
"/services/data/v57.0/sobjects/Contact/", "body"
: {
"FirstName" : "Nellie",
"LastName" : "Cashman",
"AccountId" : "@{reference_id_account_1.id}"
},
"method" : "POST",
}, "referenceId" : "reference_id_contact_1"
{
"url" :
"/services/data/v57.0/sobjects/Opportunity/", "body"
: {
"CloseDate" : "2024-05-22",
"StageName" : "Prospecting",
"Name" : "Opportunity 1",
"AccountId" : "@{reference_id_account_1.id}"
},
"method" : "POST",
} "referenceId" : "reference_id_opportunity_1"
]
},
{
"graphId" : "2",
"compositeRequest" : [
{
"url" : "/services/data/v57.0/sobjects/Account/",
"body" : {
"name" : "Easy Spaces"
},
"method" : "POST",
"referenceId" : "reference_id_account_2"
},
{
"url" :
"/services/data/v57.0/sobjects/Contact/", "body"
: {
"FirstName" : "Charlie",
"LastName" : "Dawson",
365
Reference Composite Graph
"AccountId" : "@{reference_id_account_2.id}"
},
"method" : "POST",
"referenceId" : "reference_id_contact_2"
}
]
}
]
}
{
"graphs" : [
{
"graphId" : "1",
"graphResponse" : {
"compositeResponse" : [
{
"body" : {
"id" : "001R00000064wc7IAA",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" :
"/services/data/v57.0/sobjects/Account/001R00000064wc7IAA"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_account_1"
},
{
"body" : {
"id" : "003R000000DDMlTIAX",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" :
"/services/data/v57.0/sobjects/Contact/003R000000DDMlTIAX"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_contact_1"
},
{
"body" : {
"id" : "006R0000003FPYxIAO",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" :
"/services/data/v57.0/sobjects/Opportunity/006R0000003FPYxIAO"
},
"httpStatusCode" : 201,
366
Reference Composite Subrequest
"referenceId" : "reference_id_opportunity_1"
}
]
},
"isSuccessful" : true
},
{
"graphId" : "2",
"graphResponse" : {
"compositeResponse" : [
{
"body" : {
"id" : "001R00000064wc8IAA",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" :
"/services/data/v57.0/sobjects/Account/001R00000064wc8IAA"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_account_2"
},
{
"body" : {
"id" : "003R000000DDMlUIAX",
"success" : true,
"errors" : [ ]
},
"httpHeaders" : {
"Location" :
"/services/data/v57.0/sobjects/Contact/003R000000DDMlUIAX"
},
"httpStatusCode" : 201,
"referenceId" : "reference_id_contact_2"
}
]
},
"isSuccessful" : true
}
]
}
Composite Subrequest
The composite subrequest describes a subrequest to execute with the Composite Graph resource.
Properties
367
Reference Composite Subrequest
•If the
url is /services/data/vXX.X/sobject/sObject/id
then DELETE, GET, and PATCH are supported. (See sObject Rows.)
•If the
url is
/services/data/vXX.X/sobject/sObject/customFieldName/externalI
then DELETE, GET, PATCH, and POST are supported. You can use PATCH to
referenceId String upsert via an external ID). See Insert or Update (Upsert) a Record Using an
Required.
External ID.
Reference ID that maps to the subrequest’s response and can be used to reference
the response in laterin
referenceId subrequests. You can reference the
either the body or URL of a subrequest. Use this syntax to include a reference:
@{referenceId.FieldName}.
You can use two operators with the reference ID.
368
Reference Composite Subrequest
Examples
Example 1
{
"body" : {
"Name" : "Sample Account"
},
"method" : "POST",
369
Reference Composite Graph Limits
"referenceId" : "refAccount",
"url" : "/services/data/v57.0/sobjects/Account"
}
Example 2
{
"method" : "GET",
"referenceId" : "NewAccountFields",
"url" : "/services/data/v57.0/sobjects/Account/@{refAccount.id}"
}
Usage
Because referenceId is case-sensitive, it’s important to note the case of the fields that you’re referring to. The same field can use
different cases in different contexts. For example, when you create a record, the ID field appears as
id in the response. But when you
access a record’s data with the sObject Rows resource, the ID field appears as
Id. In the Example 2, the @{refAccount.id}
reference is valid because
refAccount refers to the response from a POST like that shown in Example 1. If you use Id instead (mixed
case rather than all lowercase), as in
Results @{refAccount.Id}, you get an error when sending the request because the reference ID uses
the wrong
Results for case.
subrequests are the same as that for other Composite requests. See Composite Subrequest Result on page 354.
Item Limit
Maximum number of graphs in one payload. 75
• /services/data/v50.0/sobjects/account
and/services/data/v52.0/sobjects/account
are considered different.
370
Reference Composite Batch
Ite Limit
m •/services/data/ XX.X/sobjects/account and
v XX.X/sobjects/contact are
considered different.
/services/data/
v
Limits on Nodes
Item Limit
Maximum number of nodes supported in one payload. 500
(For example, there can be one graph with 500 nodes, or 50 graphs
with 10 nodes each.)
Composite Batch
Executes up to 25 subrequests in a single request. The response bodies and HTTP statuses of the subrequests in the batch are returned
in a single response body. Each subrequest counts against rate limits.
The requests in a batch are called subrequests. All subrequests are executed in the context of the same user. Subrequests are
independent,
and you can’t pass information between them. Subrequests execute serially in their order in the request body. When a subrequest
executes successfully, it commits its data. Commits are reflected in the output of later subrequests. If a subrequest fails, commits
made
by previous subrequests aren’t rolled back. If a batch request doesn’t complete within 10 minutes, the batch times out and the
remaining
subrequests aren’t executed.
Batching for the following resources and resource groups is available in API version 34.0 and later.
• Limits—
/services/data/vXX.X/limits
•sObject resources (except sObject Blob Retrieve and sObject Rich Text Image Retrieve)—
/services/data/vXX.X/sobjects/
• Query—
/services/data/vXX.X/query/?q=soql
• QueryAll—
/services/data/vXX.X/queryAll/?q=soql
• Search—
/services/data/vXX.X/search/?q=sosl
•Connect resources—
/services/data/vXX.X/connect/
•Chatter resources—
/services/data/vXX.X/chatter/
Batching for the following resources and resource groups is available in API version 35.0 and later.
• Actions—
vXX.X/actions
The API version of the resource accessed in each subrequest must371
be no earlier than 34.0 and no later than the Batch version in the
top-level request. For example, if you post a Batch request to
/services/data/v35.0/composite/batch, you can include
subrequests that access version 34.0 or 35.0 resources. But if you post a Batch request to
/services/data/v34.0/composite/batch, you can only include subrequests that access version 34.0 resources.
Reference Batch Request Body
Syntax
URI
/services/data/vXX.X/composite/batch
Formats
JSON, XML
HTTP method
POST
Authentication
Authorization: Bearer token
Parameters
None required
Request body
Batch Request Body on page 372
Response body
Batch Response Body on page 374
Example
For an example of using the Composite Batch resource, see Update a Record and Get Its Field Values in a Single Request on page 98.
372
Reference Batch Request Body
{
"batchRequests" : [
{
"method" : "PATCH",
"url" : "v57.0/sobjects/account/001D000000K0fXOIAZ",
"richInput" : {"Name" : "NewName"}
},{
"method" : "GET",
"url" : "v57.0/sobjects/account/001D000000K0fXOIAZ?fields=Name,BillingPostalCode"
}]
}
Subrequest
Contains the resource, method, and accompanying information for the subrequest.
Properties
binaryPartName String The name of the binary part in the multipart request. Optional
When multiple binary parts are uploaded in one batch request,
this value is used to map a request to its binary part. To prevent
name collisions, use a unique value for each
binaryPartName property in a batch request.
If this value binaryPartNameAlias
exists, value must
a also exist.
373
Reference Batch Response Body
String
binaryPartNameAlias The name parameter in the Content-Disposition header of theOptional
binary body part. Different resources expect different values. See
Insert or Update Blob Data.
If this value exists, a
binaryPartName value must also exist.
method String
The method to use with the requested resource. For a list of validRequired
methods, refer to the documentation for the requested resource.
richInput The input body for the request.Optional
The type depends on the request specified in the
url property.
url String
The resource to request.Required
•The URL can include any query string parameters that the
subrequest supports. The query string must be URL-encoded.
•You can use parameters to filter response bodies.
•You cannot apply headers at the subrequest level.
{
"method" : "GET",
"url" : "v57.0/sobjects/account/001D000000K0fXOIAZ?fields=Name,BillingPostalCode"
}
Batch Results
Properties
hasErrors Boolean true if at least one of the results in the result set is an HTTP status
code in the 400 or 500 range;
false otherwise.
results Subrequest Result[] Collection of subrequest results.
374
Reference Batch Response Body
JSON example
{
"hasErrors" : false,
"results" : [{
"statusCode" : 204,
"result" : null
},{
"statusCode" : 200,
"result": {
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000K0fXOIAZ"
},
"Name" : "NewName",
"BillingPostalCode" : "94105",
"Id" : "001D000000K0fXOIAZ"
}
}]
}
Subrequest Result
Properties
JSON example
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001D000000K0fXOIAZ"
},
"Name" : "NewName",
"BillingPostalCode" : "94015",
"Id" : "001D000000K0fXOIAZ"
}
375
Reference sObject Tree
sObject Tree
Creates one or more sObject trees with root records of the specified type. An sObject tree is a collection of nested, parent-child
records with a single root record.
In the request data, you supply the record hierarchies, required and optional field values, each record’s type, and a reference ID for
each
record.
request Upon success, the response contains the IDs of the created records. If an error occurs while creating a record, the entire
fails. In this case, the response contains only the reference ID of the record that caused the error and the error information. The
response
bodies and HTTP statuses of the requests are returned in a single response body. The entire request counts as a single call toward your
API limits.
The request can contain the following:
•Up to a total of 200 records across all trees
•Up to five records of different types
•sObject trees up to five levels deep
Because an sObject tree can contain a single record, you can use this resource to create up to 200 unrelated records of the same type.
When the request is processed and records are created, triggers, processes, and workflow rules fire separately for each of the
following
groups of records.
•Root records across all sObject trees in the request
•All second-level records of the same type—for example, second-level Contacts across all sObject trees in the request
•All third-level records of the same type
Syntax
•All fourth-level records of the same type
URI
•All fifth-level records of the same type
/services/data/vXX.X/composite/tree/sObjectName
Formats
JSON, XML
HTTP method
POST
Authentication
Authorization: Bearer token
Parameters
None required
Request body
sObject Tree Request Body on page 377
Response body
sObject Tree Response Body on page 380
Example
• For an example of creating unrelated records of the same type, see Create Multiple Records on page 102.
376
Reference sObject Tree Request Body
• For an example of creating nested records, see Create Nested Records on page 100.
Important: Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain
terms to avoid any effect on customer implementations.
records sObject Tree Input[] Collection of record trees to create. Each tree’s Required
root record type must correspond to the
sObject specified in the sObject Tree URI.
{
"records" :[{
"attributes" : {"type" : "Account", "referenceId" : "ref1"},
"name" : "SampleAccount",
"phone" : "1234567890",
"website" : "www.salesforce.com",
"numberOfEmployees" : "100",
"industry" : "Banking",
"Contacts" : {
"records" : [{
"attributes" : {"type" : "Contact", "referenceId" : "ref2"},
"lastname" : "Smith",
"title" : "President",
"email" : "[email protected]"
},{
"attributes" : {"type" : "Contact", "referenceId" : "ref3"},
"lastname" : "Evans",
"title" : "Vice President",
"email" : "[email protected]"
}]
}
},{
"attributes" : {"type" : "Account", "referenceId" : "ref4"},
"name" : "SampleAccount2",
"phone" : "1234567890",
"website" : "www.salesforce2.com",
377
Reference sObject Tree Request Body
"numberOfEmployees" :
"100", "industry" :
"Banking"
} }]
XML example
<SObjectTreeRequest>
<records type="Account" referenceId="ref1">
<name>SampleAccount</name>
<phone>1234567890</phone>
<website>www.salesforce.com</website>
<numberOfEmployees>100</numberOfEmployees>
<industry>Banking</industry>
<Contacts>
<records type="Contact" referenceId="ref2">
<lastname>Smith</lastname>
<title>President</title>
<email>[email protected]</email>
</records>
<records type="Contact" referenceId="ref3">
<lastname>Evans</lastname>
<title>Vice President</title>
<email>[email protected]</email>
</records>
</Contacts>
</records>
<records type="Account" referenceId="ref4">
<name>SampleAccount2</name>
<phone>1234567890</phone>
<website>www.salesforce2.com</website>
<numberOfEmployees>100</numberOfEmployees>
<industry>Banking</industry>
</records>
</SObjectTreeRequest>
attributes Collection Attributes for this record. The attributes property containsRequired
two subproperties:
•
type (required)—This record’s type.
•
referenceId (required)—Reference ID for this record.
Must be unique in the context of the request and start with
an alphanumeric character.
In XML, include attributes inside the
records element.
378
Reference sObject Tree Request Body
Required object fields Depends on Required fields and field values for this record. Required
field
Optional object fields Depends on Optional fields and field values for this record. Optional
field
sObject Tree
Child relationships This record’s child relationships, such as an account’s child Optional
Collection contacts. Child relationships are either master-detail or lookup
Input relationships. To view an object’s valid child relationships, use
the sObject Describe resource or Schema Builder. The value of
this property is an sObject Tree Collection Input that contains
child sObject trees.
{
"attributes" : {"type" : "Account", "referenceId" : "ref1"},
"name" : "SampleAccount",
"phone" : "1234567890",
"website" : "www.salesforce.com",
"NumberOfEmployees" : "100",
"industry" : "Banking",
"Contacts" : {
"records" : [{
"attributes" : {"type" : "Contact", "referenceId" : "ref2"},
"lastname" : "Smith",
"title" : "President",
"email" : "[email protected]"
},{
"attributes" : {"type" : "Contact", "referenceId" : "ref3"},
"lastname" : "Evans",
"title" : "Vice President",
"email" : "[email protected]"
}]
}
}
XML example
379
Reference sObject Tree Response Body
<title>President</title>
<email>[email protected]</email>
</records>
<records type="Contact" referenceId="ref3">
<lastname>Evans</lastname>
<title>Vice President</title>
<email>[email protected]</email>
</records>
</Contacts>
</records>
hasErrors Boolean true if an error occurred while creating a record; false otherwise.
reference
ID of the record that caused the error, error status code, error
message,
and fields related to the error. In the case of duplicate reference IDs,
JSON example upon success results contains one item for each instance of the duplicate ID.
{
"hasErrors" : false,
"results" : [{
"referenceId" : "ref1",
"id" : "001D000000K0fXOIAZ"
},{
"referenceId" : "ref4",
"id" : "001D000000K0fXPIAZ"
},{
"referenceId" : "ref2",
"id" : "003D000000QV9n2IAD"
},{
"referenceId" : "ref3",
"id" : "003D000000QV9n3IAD"
}]
}
380
Reference sObject Collections
<referenceId>ref1</referenceId>
</results>
<results>
<id>001D000000K0fXPIAZ</id>
<referenceId>ref4</referenceId>
</results>
<results>
<id>003D000000QV9n2IAD</id>
<referenceId>ref2</referenceId>
</results>
<results>
<id>003D000000QV9n3IAD</id>
<referenceId>ref3</referenceId>
</results>
</SObjectTreeResponse>
{
"hasErrors" : true,
"results" : [{
"referenceId" : "ref2",
"errors" : [{
"statusCode" : "INVALID_EMAIL_ADDRESS",
"message" : "Email: invalid email address: 123",
"fields" : [ "Email" ]
}]
}]
}
<SObjectTreeResponse>
<hasErrors>true</hasErrors>
<results>
<errors>
<fields>Email</fields>
<message>Email: invalid email address: 123</message>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
</errors>
<referenceId>ref2</referenceId>
</results>
</SObjectTreeResponse>
sObject Collections
Executes actions on multiple records in one request. Use sObject Collections to reduce the number of round-trips between the client
and server. The response bodies and HTTP statuses of the requests are returned in a single response body. The entire request counts as
a single call toward your API limits. This resource is available in API version 42.0 and later.
The parameters, request body, and response body of an sObject Collections request depend on the HTTP method. For details, see the
specific operation.
381
Reference Create Records Using sObject Collections
Parameter Description
allOrNone Optional. Indicates whether to roll back the entire request when the creation of any
object fails (
true) or to continue with the independent creation of other objects in
the request. The default is
false.
Note: If the sObject Collections request is embedded in a Composite request,
the Composite request’s allOrNone parameter can also affect the results.
See allOrNone Parameters in Composite and Collections Requests.
records type
Required. A list of sObjects. In a POST request using sObject Collections, set the
attribute
id field forforany
each object, but don’t set the
object.
382
Reference Create Records Using sObject Collections
Example
Example Request
curl -X POST
https://MyDomainName.my.salesforce.com/services/data/v57.0/composite/sobjects
/ -H "Authorization: Bearer token" -H "Content-Type: application/json" -d
"@exampleRequestBody.json"
{
"allOrNone" : false,
"records" : [{
"attributes" : {"type" : "Account"},
"Name" : "example.com",
"BillingCity" : "San Francisco"
},{
"attributes" : {"type" : "Contact"},
"LastName" : "Johnson",
"FirstName" : "Erica"
}]
}
HTTP/1.1 200 OK
[
{
"id" : "001RM000003oLnnYAE",
"success" : true,
"errors" : [ ]
},
{
"id" : "003RM0000068xV6YAI",
"success" : true,
"errors" : [ ]
}
]
HTTP/1.1 200 OK
[
{
"success" : false,
"errors" : [
{
"statusCode" : "DUPLICATES_DETECTED",
"message" : "Use one of these records?",
"fields" : [ ]
}
]
},
383
Reference Get Records Using sObject Collections
{
"id" : "003RM0000068xVCYAY",
"success" : true,
"errors" : [ ]
}
]
HTTP/1.1 200 OK
[
{
"success" : false,
"errors" : [
{
"statusCode" : "DUPLICATES_DETECTED",
"message" : "Use one of these records?",
"fields" : [ ]
}
]
},
{
"success" : false,
"errors" : [
{
"statusCode" : "ALL_OR_NONE_OPERATION_ROLLED_BACK",
"message" : "Record rolled back because not all records were valid and the
request was using AllOrNone header",
"fields" : [ ]
}
]
}
]
384
Reference Get Records with a Request Body Using sObject Collections
Formats
JSON, XML
HTTP Method
GET
Authentication
Authorization: Bearer token
Parameters
Parameter Description
recordIds Required. A list of one or more IDs of the objects to return. All IDs must belong to the
same object type.
Required. A list of fields to include in the response. The field names you specify must
fieldNames
be valid, and you must have read-level permissions to each field.
Example
Example Request
curl
https://MyDomainName.my.salesforce.com/services/data/v57.0/composite/sobjects/Account?ids=001x
-H "Authorization: Bearer token"
[
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DGb1AAG"
},
"Id" : "001xx000003DGb1AAG",
"Name" : "Acme"
},
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DGb0AAG"
},
"Id" : "001xx000003DGb0AAG",
"Name" : "Global Media"
},
null
385
Reference Get Records with a Request Body Using sObject Collections
Note: The sObject Blob Retrieve on page 153 resource isn’t compatible with Composite API requests, because it returns binary
data instead of data in JSON or XML formats. Instead, make individual sObject Blob Retrieve requests to retrieve blob data.
Syntax
URI
/services/data/vXX.X/composite/sobjects/sObject
Formats
JSON, XML
HTTP Method
POST
Authentication
Authorization: Bearer token
Request Body
{
"ids" : ["recordIds"],
"fields" : ["fieldName"]
}
Parameters
Parameter Description
recordIds Required. A list of one or more IDs of the objects to return. All IDs must belong to the
same object type.
Required. A list of fields to include in the response. The field names you specify must
fieldNames
be valid, and you must have read-level permissions to each field.
Example
Example Request
curl -X POST
https://MyDomainName.my.salesforce.com/services/data/v57.0/composite/sobjects/Ac
count -H "Authorization: Bearer token" -H "Content-Type: application/json" -d
"@exampleRequestBody.json"
{
"ids" : ["001xx000003DGb1AAG", "001xx000003DGb0AAG",
"001xx000003DGb9AAG"], "fields" : ["id", "name"]
}
386
Reference Update Records Using sObject Collections
[
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DGb1AAG"
},
"Id" : "001xx000003DGb1AAG",
"Name" : "Acme"
},
{
"attributes" : {
"type" : "Account",
"url" : "/services/data/v57.0/sobjects/Account/001xx000003DGb0AAG"
},
"Id" : "001xx000003DGb0AAG",
"Name" : "Global Media"
},
null
387
Reference Update Records Using sObject Collections
Formats
JSON, XML
HTTP Method
PATCH
Authentication
Authorization: Bearer token
Parameters
Parameter Description
allOrNone Optional. Indicates whether to roll back the entire request when the update of any
object fails (
true) or to continue with the independent update of other objects in
the request. The default is
false.
Note: If the sObject Collections request is embedded in a Composite request,
the Composite request’s allOrNone parameter can also affect the results.
See allOrNone Parameters in Composite and Collections Requests.
records type
Required. A list of sObjects. In a POST request using sObject Collections, set the
attribute
id field forforany
each object, but don’t set the
object.
Example
Example Request
curl -X PATCH
https://MyDomainName.my.salesforce.com/services/data/v57.0/composite/sobjects
/ -H "Authorization: Bearer token" -H "Content-Type: application/json" -d
"@exampleRequestBody.json"
{
"allOrNone" : false,
"records" : [{
"attributes" : {"type" : "Account"},
"id" : "001xx000003DGb2AAG",
"NumberOfEmployees" : 27000
},{
"attributes" : {"type" : "Contact"},
"id" : "003xx000004TmiQAAS",
"Title" : "Lead Engineer"
}]
}
HTTP/1.1 200 OK
[
{
"id" : "001RM000003oCprYAE",
388
Reference Update Records Using sObject Collections
"success" : true,
"errors" : [ ]
},
{
"id" : "003RM0000068og4YAA",
"success" : true,
"errors" : [ ]
}
]
HTTP/1.1 200 OK
[
{
"id" : "001RM000003oCprYAE",
"success" : true,
"errors" : [ ]
},
{
"success" : false,
"errors" : [
{
"statusCode" : "MALFORMED_ID",
"message" : "Contact ID: id value of incorrect type: 001xx000003DGb2999",
"fields" : [
"Id"
]
}
]
}
]
HTTP/1.1 200 OK
[
{
"id" : "001RM000003oCprYAE",
"success" : false,
"errors" : [
{
"statusCode" : "ALL_OR_NONE_OPERATION_ROLLED_BACK",
"message" : "Record rolled back because not all records were valid and the
request was using AllOrNone header",
"fields" : [ ]
}
]
},
{
"success" : false,
"errors" : [
{
389
Reference Upsert Records Using sObject Collections
"statusCode" : "MALFORMED_ID",
"message" : "Contact ID: id value of incorrect type:
001xx000003DGb2999", "fields" : [
"Id"
]
}
]
}
]
URI
/services/data/vXX.X/composite/sobjects/SobjectName/ExternalIdFieldName
Formats
JSON, XML
HTTP Method
PATCH
Authentication
Authorization: Bearer token
390
Reference Upsert Records Using sObject Collections
Parameters
Parameter Description
allOrNone Optional. Indicates whether to roll back the entire request when the creation of any
object fails (
true) or to continue with the independent creation of other objects in
the request. The default is
false.
Note: If the sObject Collections request is embedded in a Composite request,
the Composite
allOrNone request’s
parameter can also affect the results.
See allOrNone Parameters in Composite and Collections Requests.
records
Required. A list of sObjects. In a PATCH request using sObject Collections, set the
type
attribute for each object. Don’t set the
id field for any object. Instead, use the external
Example ID field specified in the request URI.
Example Request
curl -X PATCH
https://MyDomainName.my.salesforce.com/services/data/v57.0/composite/sobjects/Account/MyExtId_
-H "Authorization: Bearer token" -H "Content-Type: application/json" -d
"@exampleRequestBody.json"
{
"allOrNone" : false,
"records" : [{
"attributes" : {"type" : "Account"},
"Name" : "Company One",
"MyExtId__c" : "AAA"
},{
"attributes" : {"type" : "Account"},
"Name" : "Company Two",
"MyExtId__c" : "BBB"
}]
}
HTTP/1.1 200 OK
[
{
"id": "001xx0000004GxDAAU",
"success": true,
"errors": [],
"created": true
},
{
"id": "001xx0000004GxEAAU",
"success": true,
391
Reference Upsert Records Using sObject Collections
"errors": [],
"created": false
}
]
HTTP/1.1 200 OK
[
{
"id" : "001xx0000004GxDAAU",
"success" : true,
"errors" : [ ]
},
{
"success" : false,
"errors" : [
{
"statusCode" : "MALFORMED_ID",
"message" : "Contact ID: id value of incorrect type: 001xx0000004GxEAAU",
"fields" : [
"Id"
]
}
]
}
]
HTTP/1.1 200 OK
[
{
"id" : "001xx0000004GxDAAU",
"success" : false,
"errors" : [
{
"statusCode" : "ALL_OR_NONE_OPERATION_ROLLED_BACK",
"message" : "Record rolled back because not all records were valid and the
request was using AllOrNone header",
"fields" : [ ]
}
]
},
{
"success" : false,
"errors" : [
{
"statusCode" : "MALFORMED_ID",
"message" : "Contact ID: id value of incorrect type: 001xx0000004GxEAAU",
"fields" : [
"Id"
392
Reference Delete Records Using sObject Collections
}
]
}
]
SEE ALSO:
sObject Rows by External ID
Parameter Description
allOrNone Optional. Indicates whether to roll back the entire request when the deletion of any
object fails (
true) or to continue with the independent deletion of other objects in
the request. The default is
false.
Note: If the sObject Collections request is embedded in a Composite request,
the Composite
allOrNone request’s
parameter can also affect the results.
See allOrNone Parameters in Composite and Collections Requests.
ids
Required. A list of up to 200 IDs of objects to be deleted. The IDs can belong to different
object types, including custom objects.
393
Reference Delete Records Using sObject Collections
Example
Example Request
curl -X DELETE
https://MyDomainName.my.salesforce.com/services/data/v57.0/composite/sobjects?ids=001xx000003D
-H "Authorization: Bearer token"
HTTP/1.1 200 OK
[
{
"id" : "001RM000003oLrHYAU",
"success" : true,
"errors" : [ ]
},
{
"id" : "001RM000003oLraYAE",
"success" : true,
"errors" : [ ]
}
]
HTTP/1.1 200 OK
[
{
"id" : "001RM000003oLrfYAE",
"success" : true,
"errors" : [ ]
},
{
"success" : false,
"errors" : [
{
"statusCode" : "MALFORMED_ID",
"message" : "malformed id 001RM000003oLrB000",
"fields" : [ ]
}
]
}
]
HTTP/1.1 200 OK
[
{
"id" : "001RM000003oLruYAE",
"success" : false,
"errors" : [
394
Reference Delete Records Using sObject Collections
{
"statusCode" : "ALL_OR_NONE_OPERATION_ROLLED_BACK",
"message" : "Record rolled back because not all records were valid and the
request was using AllOrNone header",
"fields" : [ ]
}
]
},
{
"success" : false,
"errors" : [
{
"statusCode" : "MALFORMED_ID",
"message" : "malformed id 001RM000003oLrB000",
"fields" : [ ]
}
]
}
]
395