62
User Interface API Developer Guide Version 40.0, Summer 17 @salesforcedocs Last updated: August 9, 2017

User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Embed Size (px)

Citation preview

Page 1: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

User Interface API DeveloperGuide

Version 40.0, Summer ’17

@salesforcedocsLast updated: August 9, 2017

Page 2: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

© Copyright 2000–2017 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com, inc.,as are other names and marks. Other marks appearing herein may be trademarks of their respective owners.

Page 3: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

CONTENTS

Chapter 1: Get Started with User Interface API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Authentication, Versioning, and All That Good Stuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2User Interface API Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Status Codes and Error Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Chapter 2: User Interface API Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Record UI, Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Record Layout, Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Object Info, Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Records, Get, Delete, Patch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Records, Batch Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Records, Post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Clone Record Defaults, Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Create Record Defaults, Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Picklist Values, Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Chapter 3: User Interface API Request Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Record Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Chapter 4: User Interface API Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

User Interface API Top-Level Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Batch Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Object Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Picklist Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Record Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Record Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Record UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

User Interface API Nested Response Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Batch Result Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Canvas Layout Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Child Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Custom Link Layout Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Duplicate Record Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Error Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Error with Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Field Layout Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Field Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Page 4: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Filtered Lookup Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Lead Status Picklist Value Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Location Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Match Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Opportunity Stage Picklist Value Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Picklist Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Record Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Record Exception Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Record Layout Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Record Layout Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Record Layout Row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Record Layout Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Record Type Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Reference To Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Report Layout Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Theme Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Visualforce Layout Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Contents

Page 5: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

CHAPTER 1 Get Started with User Interface API

EDITIONS

Available in: DeveloperEdition

User Interface API enables you to create native mobile apps and custom web apps with your ownbranding and look and feel. A single REST request returns enough metadata, layout information,and data to display, edit, or create a record.

Note: User Interface API is available as a Developer Preview in all DE orgs. To use the API inanother type of org, contact Salesforce.

The User Interface API base URL ishttps://{your_instance}.salesforce.com/services/data/v{api_version}/ui-api.

Use the resources in the pilot version of User Interface API to display records.

• GET /ui-api/record-ui/{recordIds}

• GET /ui-api/layout/{objectApiName}

• GET /ui-api/object-info/{objectApiName}

• GET /ui-api/object-info/{objectApiName}/picklist-values/{recordTypeId}/{fieldApiName}

• GET /ui-api/records/{recordId}

• PATCH /ui-api/records/{recordId}

• DELETE /ui-api/records/{recordId}

• GET /ui-api/records/batch/{recordIds}

• POST /ui-api/records

• GET /ui-api/record-defaults/clone/{recordId}

• GET /ui-api/record-defaults/create/{apiName}

The first resource in the list, the Record UI resource, is the top dog of User Interface API. To display a record, your code makes this simplerequest:

GET /ui-api/record-ui/001R0000003GeJ1IAK

Behind the scenes, Salesforce does the heavy lifting.

• Checks field-level security settings, sharing settings, and perms.

• Makes SOQL queries to get record data.

• Gets object metadata and theme information.

• Gets layout information.

You are one happy developer, because Salesforce transforms the results into an easy-to-consume JSON response with all the metadataand data you need to display a record.

Authentication, Versioning, and All That Good Stuff

Learn the high-level facts about how to use User Interface API. How do you authenticate? How is the API versioned? What are therate limits? All the information you need, available at a glance.

User Interface API Quick Start

The best way to learn an API is to use it. Let's go!

1

Page 6: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Status Codes and Error Responses

The response header contains an HTTP status code. If the response isn’t successful, the response body contains an error message,and if appropriate, information about the field or object where the error occurred.

Authentication, Versioning, and All That Good Stuff

Learn the high-level facts about how to use User Interface API. How do you authenticate? How is the API versioned? What are the ratelimits? All the information you need, available at a glance.

AuthenticationLike other Salesforce REST APIs, User Interface API uses OAuth 2.0.

VersioningUser Interface API is versioned. Specify the API version number in each request.

GET https://{your_salesforce_instance}.salesforce.com/services/data/v40.0/ui-api

Error HandlingThe response header contains an HTTP status code. If the response isn’t successful, the response body contains an error message,and if appropriate, information about the field or object where the error occurred.

Rate LimitingUser Interface API requests are subject to rate limiting. User Interface API has a per user, per application, per hour rate limit. Whenyou exceed the rate limit, all User Interface API resources return a 503 Service Unavailable error code.

Required FieldsWhen you’re building UI, to determine which fields to mark as required for create and update, use theObjectInfo.fields[].required property.

In the Salesforce user interface, an admin with “Customize Application” permission can mark a field as required in a layout. Use theRecord Layout Item.required property to tell you whether a field is required in a layout for create and update.

Response FilteringUser Interface API is built on the same REST framework as Chatter REST API and observes the same filtering rules.

Also, several User Interface API resources support additional parameters that change the response to include what your UI needs.

• formFactor—The layout display size for the record.

– Large—(Default) Use this value to get a layout for desktop display size.

– Medium—Use this value to get a layout for tablet display size.

– Small—Use this value to get a layout for phone display size.

• layoutType—The layout type for the record.

– Compact—Use this value to get a layout that contains a record's key fields.

– Full—(Default) Use this value to get a full layout.

• mode—The access mode for the record. This value determines which fields to get from a layout. Layouts have different fieldsfor create, edit, and view modes. For example, formula fields are rendered in view mode, but not in create mode because they’recalculated at run time, like formulas in a spreadsheet.

– Create—Use this mode if you intend to build UI that lets a user create a record. This mode is used by the/ui-api/record-defaults/create/{apiName} resource.

– Edit—Use this mode if you intend to build UI that lets a user edit a record. This mode is used by the/ui-api/record-defaults/clone/{recordId} resource.

2

Authentication, Versioning, and All That Good StuffGet Started with User Interface API

Page 7: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

– View—(Default) Use this mode if you intend to build UI that displays a record.

Supported ObjectsUser Interface API supports custom objects and these objects that are available in Lightning Experience.

• Account

• AccountTeamMember

• Asset

• AssetRelationship

• AssignedResource

• AttachedContentNote

• Campaign

• CampaignMember

• Contact

• ContentWorkspace

• Contract

• ContractContactRole

• Entitlement

• EnvironmentHubMember

• LicensingRequest

• MaintenanceAsset

• MaintenancePlan

• MarketingAction

• MarketingResource

• OperatingHours

• ProcessInstanceHistory

• Quote

• ResourceAbsence

• ServiceAppointment

• ServiceResource

• ServiceResourceSkill

• ServiceTerritory

• ServiceTerritoryMember

• ServiceTerritoryLocation

• SkillRequirement

• SocialPost

• Tenant

• TimeSheet

• TimeSheetEntry

• TimeSlotShipment

• UsageEntitlement

• UsageEntitlementPeriod

3

Authentication, Versioning, and All That Good StuffGet Started with User Interface API

Page 8: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

• WorkOrder

• WorkOrderLineItem

• WorkType

SEE ALSO:

Digging Deeper into OAuth 2.0 on Force.com

User Interface API Quick Start

The best way to learn an API is to use it. Let's go!

Sign up for a Salesforce Developer Edition (also known as a DE org).

This quick start makes a request to the top dog of User Interface APIs, the Record UI resource, /ui-api/record-ui/{recordIds}.This resource returns all the information you need to display a record in an app: layout metadata, object metadata, and record data.

1. Go to the Workbench API utility.

2. Log in to your DE org.

3. The Record UI resource requires a record ID. To grab one:

a. Click queries > SOQL Query.

b. Select an object, such as Account, select the Id field, and click Query.

c. Copy one of the IDs in the list of query results. Either keep it in your clipboard, or copy it to a notepad to grab later.

4. Select utilities > Rest Explorer.

5. Make a GET request to /ui-api/record-ui/{recordIds}. Substitute the record ID from your SOQL query.

Here's a sample request:

GET /ui-api/record-ui/001R0000003GeJ1IAK

The response includes three nested response bodies. Each response body is a map because you can pass a list of record IDs to the request(for example, /ui-api/record-ui/001R0000003GeJ1IAK,001R0000003GKR0IAO). In our example, we passed onlyone record ID.

• layouts—A map of object API names to layout information for each object

• objectInfos—A map of object API names to metadata for each object

• records—A map of record IDs to data for each record

Tip: To get these response bodies individually, use GET /ui-api/layout/{objectApiName}, GET/ui-api/object-info/{objectApiName} , and GET /ui-api/records/{recordId} .

{"layouts" : {"Account" : {"012000000000000AAA" : {"Full" : {"View" : {"id" : "00hR0000000NisVIAS","layoutType" : "Full","mode" : "View",

4

User Interface API Quick StartGet Started with User Interface API

Page 9: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"sections" : [ {"columns" : 2,"heading" : "Account Information","isCollapsed" : false,"layoutRows" : [ {"layoutItems" : [ {"editableForNew" : false,"editableForUpdate" : false,"label" : "Account Owner","layoutComponents" : [ {"componentType" : "Field","label" : "Owner ID","value" : "OwnerId"

} ],"lookupIdApiName" : "OwnerId","sortable" : false

}, {"editableForNew" : true,"editableForUpdate" : true,"label" : "Phone","layoutComponents" : [ {"componentType" : "Field","label" : "Account Phone","value" : "Phone"

} ],"lookupIdApiName" : null,"sortable" : false

} ]}, {"layoutItems" : [ {"editableForNew" : true,"editableForUpdate" : true,"label" : "Account Name","layoutComponents" : [ {"componentType" : "Field","label" : "Account Name","value" : "Name"

} ],"lookupIdApiName" : "Id","sortable" : false

}, {"editableForNew" : true,"editableForUpdate" : true,"label" : "Fax","layoutComponents" : [ {"componentType" : "Field","label" : "Account Fax","value" : "Fax"

} ],"lookupIdApiName" : null,"sortable" : false

} ]}, {"layoutItems" : [ {

5

User Interface API Quick StartGet Started with User Interface API

Page 10: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"editableForNew" : true,"editableForUpdate" : true,"label" : "Parent Account","layoutComponents" : [ {"componentType" : "Field","label" : "Parent Account ID","value" : "ParentId"

} ],"lookupIdApiName" : "ParentId","sortable" : false

}, {"editableForNew" : true,"editableForUpdate" : true,"label" : "Website","layoutComponents" : [ {"componentType" : "Field","label" : "Website","value" : "Website"

} ],"lookupIdApiName" : null,"sortable" : false

} ]}, {"layoutItems" : [ {"editableForNew" : true,"editableForUpdate" : true,"label" : "Contact","layoutComponents" : [ {"componentType" : "Field","label" : "Contact","value" : "Contact__c"

} ],"lookupIdApiName" : "Id","sortable" : false

} ]} ],"rows" : 4,"useHeading" : false

}

... additional section info removed to save save space ...

]}

}}

}},"objectInfos" : {"Account" : {"apiName" : "Account","childRelationships" : [ {"childObjectApiName" : "Account","fieldName" : "ParentId",

6

User Interface API Quick StartGet Started with User Interface API

Page 11: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"junctionIdListNames" : [ ],"junctionReferenceTo" : [ ],"relationshipName" : "ChildAccounts"

}, {"childObjectApiName" : "AccountContactRole","fieldName" : "AccountId","junctionIdListNames" : [ ],"junctionReferenceTo" : [ ],"relationshipName" : "AccountContactRoles"

}

... additional child relationships removed to save space ...

],"createable" : true,"custom" : false,"defaultRecordTypeId" : null,"deleteable" : true,"feedEnabled" : true,"fields" : {"AnnualRevenue" : {"apiName" : "AnnualRevenue","calculated" : false,"compound" : false,"controllerName" : null,"createable" : true,"custom" : false,"dataType" : "Currency","extraTypeInfo" : null,"filterable" : true,"filteredLookupInfo" : null,"highScaleNumber" : false,"htmlFormatted" : false,"label" : "Annual Revenue","length" : 0,"nameField" : false,"picklistValuesUrls" : { },"precision" : 18,"reference" : false,"referenceTargetField" : null,"referenceToInfos" : [ ],"relationshipName" : null,"required" : false,"scale" : 0,"sortable" : true,"updateable" : true

},"BillingCity" : {"apiName" : "BillingCity","calculated" : false,"compound" : false,"controllerName" : null,"createable" : true,"custom" : false,

7

User Interface API Quick StartGet Started with User Interface API

Page 12: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"dataType" : "String","extraTypeInfo" : null,"filterable" : true,"filteredLookupInfo" : null,"highScaleNumber" : false,"htmlFormatted" : false,"label" : "Billing City","length" : 40,"nameField" : false,"picklistValuesUrls" : { },"precision" : 0,"reference" : false,"referenceTargetField" : null,"referenceToInfos" : [ ],"relationshipName" : null,"required" : false,"scale" : 0,"sortable" : true,"updateable" : true

}

... additional field info removed to save space ...

},"keyPrefix" : "001","label" : "Account","labelPlural" : "Accounts","layoutable" : true,"mruEnabled" : true,"nameFields" : [ "Name" ],"queryable" : true,"recordTypeInfos" : {"012000000000000AAA" : {"available" : true,"defaultRecordTypeMapping" : true,"master" : true,"name" : "Master","recordTypeId" : "012000000000000AAA"

}},"searchable" : true,"themeInfo" : {"color" : "7F8DE1","iconUrl" :

"https://na7-blitz03.soma.salesforce.com/img/icon/t4v35/standard/account_120.png"},"updateable" : true

}},"records" : {"001R0000003I7ObIAK" : {"apiName" : "Account","fields" : {"AnnualRevenue" : {

8

User Interface API Quick StartGet Started with User Interface API

Page 13: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"displayValue" : null,"value" : null

},"BillingCity" : {"displayValue" : null,"value" : "Toronto"

},"BillingCountry" : {"displayValue" : null,"value" : "Canada"

},"BillingPostalCode" : {"displayValue" : null,"value" : "L4B 1Y3"

},"BillingState" : {"displayValue" : null,"value" : "Ontario"

},"BillingStreet" : {"displayValue" : null,"value" : "150 Chestnut Street"

},"Contact__c" : {"displayValue" : null,"value" : null

},"Contact__r" : {"displayValue" : null,"value" : null

},"CreatedBy" : {"displayValue" : "Admin User","value" : {"apiName" : "User","fields" : {"Id" : {"displayValue" : null,"value" : "005R0000000IXV3IAO"

},"Name" : {"displayValue" : null,"value" : "Admin User"

}},"id" : "005R0000000IXV3IAO","recordTypeInfo" : null

}},"CreatedById" : {"displayValue" : null,"value" : "005R0000000IXV3IAO"

},"CreatedDate" : {

9

User Interface API Quick StartGet Started with User Interface API

Page 14: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"displayValue" : "4/9/2017 6:13 PM","value" : "2017-04-10T01:13:22.000Z"

}

... additional record data removed to save space ...

},"id" : "001R0000003I7ObIAK","recordTypeInfo" : null

}}

}

Status Codes and Error Responses

The response header contains an HTTP status code. If the response isn’t successful, the response body contains an error message, andif appropriate, information about the field or object where the error occurred.

DescriptionHTTP Status Code

Success with GET, PATCH, or HEAD request200

Success with POST request201

Success with DELETE204

The request could not be understood, usually because the ID is not valid for the particular resource.400

The session ID or OAuth token has expired or is invalid. Or, if the request is made by a guest user, theresource isn’t accessible to guest users. The response body contains the message and errorCode.

401

The request has been refused. Verify that the context user has the appropriate permissions to access therequested data, or that the context user is not an external user.

403

Either the specified resource was not found, or the resource has been deleted.404

A conflict has occurred. For example, an attempt was made to update a request to join a group, but thatrequest had already been approved or rejected.

409

A precondition has failed. For example, in a batch request, if haltOnError is true and a subrequestfails, subsequent subrequests return 412.

412

An error has occurred within Force.com, so the request could not be completed. Contact SalesforceCustomer Support.

500

Too many requests in an hour or the server is down for maintenance.503

ExampleThis request requires a 15 or 18 character record ID, but this record ID doesn't contain enough characters:

GET /ui-api/record-ui/003R000000

10

Status Codes and Error ResponsesGet Started with User Interface API

Page 15: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

The response body is:

HTTP/1.1 400 Bad RequestDate: Tue, 29 Nov 2016 00:16:36 GMTX-Content-Type-Options: nosniffX-XSS-Protection: 1; mode=blockContent-Security-Policy: reflected-xss block;report-uri /_/ContentDomainCSPNoAuth?type=xssContent-Security-Policy: referrer origin-when-cross-originSet-Cookie: BrowserId=q27CK9tSSCeI3klUaYMo6A;Path=/;Domain=.salesforce.com;Expires=Sat,28-Jan-2017 00:16:36 GMTExpires: Thu, 01 Jan 1970 00:00:00 GMTContent-Type: application/json;charset=UTF-8Transfer-Encoding: chunked

[ {"errorCode" : "ILLEGAL_QUERY_PARAMETER_VALUE","message" : "recordId should be a valid record ID: 003R000000"

} ]

11

Status Codes and Error ResponsesGet Started with User Interface API

Page 16: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

CHAPTER 2 User Interface API Resources

This chapter contains User Interface API resources (also called endpoints).

Record UI, Get

Get layout information, metadata, and data to build UI for a single record or for a collection of records.

Record Layout, Get

Get metadata about page layouts for the specified object type.

Object Info, Get

Get metadata (field list and object properties) about a specific object.

Records, Get, Delete, Patch

Get, delete, and update a specific record's data.

Records, Batch Get

Get data for a batch of records.

Records, Post

Create a new record. Before you create a record, make a request to the Clone Record Default or Create Record Default resources toget the default metadata and data.

Clone Record Defaults, Get

Get the default layout information, object information, and data for cloning a record. After getting the default values, make a requestto POST /ui-api/records to create the record.

Create Record Defaults, Get

Get the default layout information and object information for creating a record. After getting the default values, make a request toPOST /ui-api/records to create the record.

Picklist Values, Get

Get the values for a picklist.

Record UI, Get

Get layout information, metadata, and data to build UI for a single record or for a collection of records.

Resource

/ui-api/record-ui/{recordIds}

Available version39.0

HTTP methodsGET

12

Page 17: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Request parameters for GET

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalThe layout display size for the record. Oneof these values:

StringformFactor

• Large—(Default) Use this value toget a layout for desktop display size.

• Medium—Use this value to get alayout for tablet display size.

• Small—Use this value to get alayout for phone display size.

39.0OptionalThe layout type for the record. A collectionof any of these values:

String[]layoutTypes

• Compact—Use this value to get alayout that contains a record's keyfields.

• Full—(Default) Use this value to geta full layout.

39.0OptionalThe access mode for the record. This valuedetermines which fields to get from a

String[]modes

layout. Layouts have different fields forcreate, edit, and view modes. For example,formula fields are rendered in view mode,but not in create mode because they’recalculated at run time, like formulas in aspreadsheet. A collection of any of thesevalues:

• Create—Use this mode if youintend to build UI that lets a usercreate a record. This mode is used bythe/ui-api/record-defaults/create/{apiName}resource.

• Edit—Use this mode if you intendto build UI that lets a user edit a record.This mode is used by the/ui-api/record-defaults/clone/{recordId}resource.

• View—(Default) Use this mode if youintend to build UI that displays arecord.

13

Record UI, GetUser Interface API Resources

Page 18: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalA collection of optional field names. If afield is accessible to the context user, it’s

String[]optionalFields

included in the response. If a field isn’taccessible to the context user, it isn’tincluded in the response, but it doesn’tcause an error. Specify optional field namesusing the format:{ObjectApiName}.{FieldName}

Response body for GETRecord UI

SEE ALSO:

User Interface API Quick Start

Record Layout, Get

Get metadata about page layouts for the specified object type.

Resource

/ui-api/layout/{objectApiName}

Available version39.0

HTTP methodsGET

Request parameters for GET

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalThe layout display size for the record. Oneof these values:

StringformFactor

• Large—(Default) Use this value toget a layout for desktop display size.

• Medium—Use this value to get alayout for tablet display size.

• Small—Use this value to get alayout for phone display size.

14

Record Layout, GetUser Interface API Resources

Page 19: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalThe layout type for the record. One ofthese values:

StringlayoutType

• Compact—Use this value to get alayout that contains a record's keyfields.

• Full—(Default) Use this value to geta full layout.

39.0OptionalThe access mode for the record. This valuedetermines which fields to get from a

Stringmode

layout. Layouts have different fields forcreate, edit, and view modes. For example,formula fields are rendered in view mode,but not in create mode because they’recalculated at run time, like formulas in aspreadsheet. One of these values:

• Create—Use this mode if youintend to build UI that lets a usercreate a record. This mode is used bythe/ui-api/record-defaults/create/{apiName}resource.

• Edit—Use this mode if you intendto build UI that lets a user edit a record.This mode is used by the/ui-api/record-defaults/clone/{recordId}resource.

• View—(Default) Use this mode if youintend to build UI that displays arecord.

39.0OptionalThe ID of the record type (RecordTypeobject) for the new record. If not provided,the default record type is used.

IdrecordTypeId

Response body for GETRecord Layout

SEE ALSO:

User Interface API Quick Start

15

Record Layout, GetUser Interface API Resources

Page 20: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Object Info, Get

Get metadata (field list and object properties) about a specific object.

Resource

/ui-api/object-info/{objectApiName}

Available version39.0

HTTP methodsGET

Request parameters for GET

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalThe layout type for the record. A collectioncontaining any of these values:

String[]layoutTypes

• Compact—Use this value to get alayout that contains a record's keyfields.

• Full—(Default) Use this value to geta full layout.

39.0OptionalThe access mode for the record. This valuedetermines which fields to get from a

String[]modes

layout. Layouts have different fields forcreate, edit, and view modes. For example,formula fields are rendered in view mode,but not in create mode because they’recalculated at run time, like formulas in aspreadsheet. A collection containing anyof these values:

• Create—Use this mode if youintend to build UI that lets a usercreate a record. This mode is used bythe/ui-api/record-defaults/create/{apiName}resource.

• Edit—Use this mode if you intendto build UI that lets a user edit a record.This mode is used by the/ui-api/record-defaults/clone/{recordId}resource.

• View—(Default) Use this mode if youintend to build UI that displays arecord.

16

Object Info, GetUser Interface API Resources

Page 21: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalThe ID of the record type (RecordTypeobject) for the new record. If not provided,the default record type is used.

IdrecordTypeId

Response body for GETObject Info

SEE ALSO:

User Interface API Quick Start

Records, Get, Delete, Patch

Get, delete, and update a specific record's data.

Resource

/ui-api/records/{recordId}

Available version39.0

HTTP methodsGET, DELETE, PATCH

Request parameters for GET

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0Either fields orlayoutTypes isrequired.

Specifies the fields to return. If this propertyis specified, the response is a union offields and optionalFields.

If the context user doesn’t have access toa field, an error is returned.

String[]fields

If you’re not sure whether the context userhas access to a field and you don’t wantthe request to fail if they don’t, use theoptionalFields parameter instead.

17

Records, Get, Delete, PatchUser Interface API Resources

Page 22: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0Either fields orlayoutTypes isrequired.

Specifies the fields to return. If this propertyis specified, the response is a union oflayoutTypes, modes, andoptionalFields.

A collection containing any of these values:

String[]layoutTypes

• Compact—Use this value to get alayout that contains a record's keyfields.

• Full—(Default) Use this value to geta full layout.

39.0Optional if thelayoutTypes

The access mode for the record. This valuedetermines which fields to get from alayout. Layouts have different fields for

String[]modes

parameter iscreate, edit, and view modes. For example, specified.formula fields are rendered in view mode, Otherwise, thisbut not in create mode because they’re parameter is

ignored.calculated at run time, like formulas in aspreadsheet. A collection containing anyof these values:

• Create—Use this mode if youintend to build UI that lets a usercreate a record. This mode is used bythe/ui-api/record-defaults/create/{apiName}resource.

• Edit—Use this mode if you intendto build UI that lets a user edit a record.This mode is used by the/ui-api/record-defaults/clone/{recordId}resource.

• View—(Default) Use this mode if youintend to build UI that displays arecord.

39.0OptionalA collection of optional field names. If afield is accessible to the context user, it’s

String[]optionalFields

included in the response. If a field isn’taccessible to the context user, it isn’tincluded in the response, but it doesn’tcause an error. Specify optional field namesusing the format:{ObjectApiName}.{FieldName}

18

Records, Get, Delete, PatchUser Interface API Resources

Page 23: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Response body for GETRecord

Request body for PATCH

AvailableVersion

Required orOptional

DescriptionTypeName

39.0RequiredTo create a record, specify the API nameof an Object from which to create therecord. To update a record, use null.

StringapiName

39.0RequiredMap of field names to field values.

Format data types according to these rules:

Map<String,Object>

fields

• Address—JSON String

• Base64—JSON String

• Boolean—JSON Boolean, true orfalse

• Currency—JSON Float

• Date—JSON string in correct format

• DateTime—JSON string in ISO 8601format

• Double—JSON Float

• Email—JSON String

• EncryptedString—JSON String

• Int—JSON Number

• Location—JSON String

• MultiPicklist—JSON String

• Percent—JSON Float

• Phone—JSON String

• Picklist—JSON String

• Reference—JSON String.

• String—JSON String

• TextArea—JSON String

• Time—JSON String in formatHH:MM:SS

• Url—JSON String

Response body for PATCHRecord

19

Records, Get, Delete, PatchUser Interface API Resources

Page 24: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Example for PATCH

PATCH /ui-api/records/001R0000003Gjrt

{"apiName": "Account","fields": {"Name": "Universal Containers"

}}

To provide an address, provide the individual fields as separate inputs. The compound field is only available in the response.

{"apiName": "Account","fields" : {"Name": "Local Boxes","BillingState": "WA","BillingStreet" : "123 Main Street","BillingCountry" : "USA"

}}

SEE ALSO:

Records, Batch Get

Records, Post

User Interface API Quick Start

Records, Batch Get

Get data for a batch of records.

Resource

/ui-api/records/batch/{recordIds}

Available version39.0

HTTP methodsGET

Request parameters for GET

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0Either fields orlayoutTypes isrequired.

Specifies the fields to return. If this propertyis specified, the response is a union offields and optionalFields.

If the context user doesn’t have access toa field, an error is returned.

String[]fields

20

Records, Batch GetUser Interface API Resources

Page 25: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Required orOptional

DescriptionTypeParameterName

If you’re not sure whether the context userhas access to a field and you don’t wantthe request to fail if they don’t, use theoptionalFields parameter instead.

39.0Either fields orlayoutTypes isrequired.

Specifies the fields to return. If this propertyis specified, the response is a union oflayoutTypes, modes, andoptionalFields.

A collection containing any of these values:

String[]layoutTypes

• Compact—Use this value to get alayout that contains a record's keyfields.

• Full—(Default) Use this value to geta full layout.

39.0Optional if thelayoutTypes

The access mode for the record. This valuedetermines which fields to get from alayout. Layouts have different fields for

String[]modes

parameter iscreate, edit, and view modes. For example, specified.formula fields are rendered in view mode, Otherwise, thisbut not in create mode because they’re parameter is

ignored.calculated at run time, like formulas in aspreadsheet. A collection containing anyof these values:

• Create—Use this mode if youintend to build UI that lets a usercreate a record. This mode is used bythe/ui-api/record-defaults/create/{apiName}resource.

• Edit—Use this mode if you intendto build UI that lets a user edit a record.This mode is used by the/ui-api/record-defaults/clone/{recordId}resource.

• View—(Default) Use this mode if youintend to build UI that displays arecord.

39.0OptionalA collection of optional field names. If afield is accessible to the context user, it’s

String[]optionalFields

included in the response. If a field isn’taccessible to the context user, it isn’tincluded in the response, but it doesn’t

21

Records, Batch GetUser Interface API Resources

Page 26: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Required orOptional

DescriptionTypeParameterName

cause an error. Specify optional field namesusing the format:{ObjectApiName}.{FieldName}

Response body for GETBatch Results

SEE ALSO:

Clone Record Defaults, Get

Create Record Defaults, Get

Records, Get, Delete, Patch

User Interface API Quick Start

Batch Results

Records, Post

Create a new record. Before you create a record, make a request to the Clone Record Default or Create Record Default resources to getthe default metadata and data.

Resource

/ui-api/records

Available version39.0

HTTP methodsPOST

Request body example

POST /ui-api/records

{"apiName": "Account","fields": {"Name": "Universal Containers"

}}

To provide an address, provide the individual fields as separate inputs. The compound field is only available in the response.

{"apiName": "Account","fields" : {"Name": "Local Boxes","BillingState": "WA","BillingStreet" : "123 Main Street",

22

Records, PostUser Interface API Resources

Page 27: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"BillingCountry" : "USA"}

}

Request body for POST

AvailableVersion

Required orOptional

DescriptionTypeName

39.0RequiredTo create a record, specify the API nameof an Object from which to create therecord. To update a record, use null.

StringapiName

39.0RequiredMap of field names to field values.

Format data types according to these rules:

Map<String,Object>

fields

• Address—JSON String

• Base64—JSON String

• Boolean—JSON Boolean, true orfalse

• Currency—JSON Float

• Date—JSON string in correct format

• DateTime—JSON string in ISO 8601format

• Double—JSON Float

• Email—JSON String

• EncryptedString—JSON String

• Int—JSON Number

• Location—JSON String

• MultiPicklist—JSON String

• Percent—JSON Float

• Phone—JSON String

• Picklist—JSON String

• Reference—JSON String.

• String—JSON String

• TextArea—JSON String

• Time—JSON String in formatHH:MM:SS

• Url—JSON String

Response body for POSTRecord

23

Records, PostUser Interface API Resources

Page 28: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Response body example

{"apiName" : "Account","fields" : {"AnnualRevenue" : {"displayValue" : null,"value" : null

},"BillingCity" : {"displayValue" : null,"value" : null

},"BillingCountry" : {"displayValue" : null,"value" : null

},"BillingPostalCode" : {"displayValue" : null,"value" : null

},"BillingState" : {"displayValue" : null,"value" : null

},"BillingStreet" : {"displayValue" : null,"value" : null

},"CreatedBy" : {"displayValue" : "Deanna Li","value" : {"apiName" : "User","fields" : {"Id" : {"displayValue" : "005R0000000IEDsIAO","value" : "005R0000000IEDsIAO"

},"Name" : {"displayValue" : "Deanna Li","value" : "Deanna Li"

}},"id" : "005R0000000IEDsIAO","recordTypeInfo" : null

}},"CreatedById" : {"displayValue" : "005R0000000IEDsIAO","value" : "005R0000000IEDsIAO"

},"CreatedDate" : {"displayValue" : "11/22/2016 12:36 PM","value" : "2016-11-22T20:36:12.000Z"

24

Records, PostUser Interface API Resources

Page 29: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

},"Description" : {"displayValue" : null,"value" : null

},"Fax" : {"displayValue" : null,"value" : null

},"Industry" : {"displayValue" : null,"value" : null

},"LastModifiedBy" : {"displayValue" : "Deanna Li","value" : {"apiName" : "User","fields" : {"Id" : {"displayValue" : "005R0000000IEDsIAO","value" : "005R0000000IEDsIAO"

},"Name" : {"displayValue" : "Deanna Li","value" : "Deanna Li"

}},"id" : "005R0000000IEDsIAO","recordTypeInfo" : null

}},"LastModifiedById" : {"displayValue" : "005R0000000IEDsIAO","value" : "005R0000000IEDsIAO"

},"LastModifiedDate" : {"displayValue" : "11/22/2016 12:36 PM","value" : "2016-11-22T20:36:12.000Z"

},"Name" : {"displayValue" : "Universal Containers","value" : "Universal Containers"

},"NumberOfEmployees" : {"displayValue" : null,"value" : null

},"Owner" : {"displayValue" : "Deanna Li","value" : {"apiName" : "User","fields" : {"Id" : {"displayValue" : "005R0000000IEDsIAO",

25

Records, PostUser Interface API Resources

Page 30: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"value" : "005R0000000IEDsIAO"},"Name" : {"displayValue" : "Deanna Li","value" : "Deanna Li"

}},"id" : "005R0000000IEDsIAO","recordTypeInfo" : null

}},"OwnerId" : {"displayValue" : "005R0000000IEDsIAO","value" : "005R0000000IEDsIAO"

},"ParentId" : {"displayValue" : null,"value" : null

},"Phone" : {"displayValue" : null,"value" : null

},"ShippingCity" : {"displayValue" : null,"value" : null

},"ShippingCountry" : {"displayValue" : null,"value" : null

},"ShippingPostalCode" : {"displayValue" : null,"value" : null

},"ShippingState" : {"displayValue" : null,"value" : null

},"ShippingStreet" : {"displayValue" : null,"value" : null

},"Type" : {"displayValue" : null,"value" : null

},"Website" : {"displayValue" : null,"value" : null

}},"id" : "001R0000003GeJ1IAK",

26

Records, PostUser Interface API Resources

Page 31: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

"recordTypeInfo" : null}

SEE ALSO:

Clone Record Defaults, Get

Create Record Defaults, Get

Records, Get, Delete, Patch

User Interface API Quick Start

Clone Record Defaults, Get

Get the default layout information, object information, and data for cloning a record. After getting the default values, make a request toPOST /ui-api/records to create the record.

The response contains the default field values for a record cloned from the record specified in {recordId}, optionally of the specifiedrecordTypeId. It also contains the corresponding layout information for Edit mode, and object metadata.

Resource

/ui-api/record-defaults/clone/{recordId}

Available version39.0

HTTP methodsGET

Request parameters for GET

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalThe layout display size for the record. Oneof these values:

StringformFactor

• Large—(Default) Use this value toget a layout for desktop display size.

• Medium—Use this value to get alayout for tablet display size.

• Small—Use this value to get alayout for phone display size.

39.0OptionalThe ID of the record type (RecordTypeobject) for the new record. If not provided,the default record type is used.

IdrecordTypeId

27

Clone Record Defaults, GetUser Interface API Resources

Page 32: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Response body for GETRecord Defaults

SEE ALSO:

Records, Post

User Interface API Quick Start

Create Record Defaults, Get

Get the default layout information and object information for creating a record. After getting the default values, make a request to POST/ui-api/records to create the record.

The response contains the default field values for a new record of the object type specified in {apiName}. It also contains thecorresponding layout for Create mode, and object metadata.

Resource

/ui-api/record-defaults/create/{apiName}

Available version39.0

HTTP methodsGET

Request parameters for GET

AvailableVersion

Required orOptional

DescriptionTypeParameterName

39.0OptionalThe layout display size for the record. Oneof these values:

StringformFactor

• Large—(Default) Use this value toget a layout for desktop display size.

• Medium—Use this value to get alayout for tablet display size.

• Small—Use this value to get alayout for phone display size.

39.0OptionalThe ID of the record type (RecordTypeobject) for the new record. If not provided,the default record type is used.

IdrecordTypeId

Response body for GETRecord Defaults

SEE ALSO:

Records, Post

User Interface API Quick Start

28

Create Record Defaults, GetUser Interface API Resources

Page 33: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Picklist Values, Get

Get the values for a picklist.

Resource

/ui-api/object-info/{objectApiName}/picklist-values/{recordTypeId}/{fieldApiName}

Available version39.0

HTTP methodsGET

Response body for GETPicklist Values

ExampleWhen you make a request to /ui-api/record-ui/{recordIds} or /ui-api/object-info/{objectApiName},if the response includes a picklist field, it also includes a picklistValuesUrls property. That property contains a Picklist Valuesresource with the {objectApiName}, {recordTypeId}, and {fieldApiName} filled in, as in this example:

GET/services/data/v40.0/ui-api/object-info/Account/picklist-values/012000000000000AAA/Type/

{"controllerValues" : { },"defaultValue" : null,"url" :

"/services/data/v39.0/ui-api/object-info/Account/picklist-values/012000000000000AAA/Type",

"values" : [ {"attributes" : null,"label" : "Analyst","picklistAttributesValueType" : "Standard","validFor" : [ ],"value" : "Analyst"

}, {"attributes" : null,"label" : "Competitor","picklistAttributesValueType" : "Standard","validFor" : [ ],"value" : "Competitor"

},

... some picklist values removed for space ...

{"attributes" : null,"label" : "Other","picklistAttributesValueType" : "Standard","validFor" : [ ],"value" : "Other"

29

Picklist Values, GetUser Interface API Resources

Page 34: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

} ]}

SEE ALSO:

Record UI, Get

Object Info, Get

User Interface API Quick Start

30

Picklist Values, GetUser Interface API Resources

Page 35: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

CHAPTER 3 User Interface API Request Bodies

The successful execution of a request to a resource can return a response body in JSON format.

A request to a resource always returns an HTTP response code, whether the request was successful or not.

Record Input

A description of a record to use in a request to create or update a record.

Record Input

A description of a record to use in a request to create or update a record.

Example

POST /ui-api/records

{"apiName": "Account","fields": {"Name": "Universal Containers"

}}

To provide an address, provide the individual fields as separate inputs. The compound field is only available in the response.

{"apiName": "Account","fields" : {"Name": "Local Boxes","BillingState": "WA","BillingStreet" : "123 Main Street","BillingCountry" : "USA"

}}

Properties

AvailableVersion

Required orOptional

DescriptionTypeName

39.0RequiredTo create a record, specify the API nameof an Object from which to create therecord. To update a record, use null.

StringapiName

31

Page 36: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Required orOptional

DescriptionTypeName

39.0RequiredMap of field names to field values.

Format data types according to these rules:

Map<String,Object>

fields

• Address—JSON String

• Base64—JSON String

• Boolean—JSON Boolean, true orfalse

• Currency—JSON Float

• Date—JSON string in correct format

• DateTime—JSON string in ISO 8601format

• Double—JSON Float

• Email—JSON String

• EncryptedString—JSON String

• Int—JSON Number

• Location—JSON String

• MultiPicklist—JSON String

• Percent—JSON Float

• Phone—JSON String

• Picklist—JSON String

• Reference—JSON String.

• String—JSON String

• TextArea—JSON String

• Time—JSON String in formatHH:MM:SS

• Url—JSON String

SEE ALSO:

Records, Post

32

Record InputUser Interface API Request Bodies

Page 37: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

CHAPTER 4 User Interface API Response Bodies

A request to a resource returns a response body. Some response bodies also contain nested response bodies.

A request to a resource always returns an HTTP response code, whether the request was successful or not.

User Interface API Top-Level Response Bodies

These response bodies are returned from requests to User Interface API resources. They may contain nested response bodies.

User Interface API Nested Response Bodies

These response bodies are nested in top-level response bodies.

User Interface API Top-Level Response Bodies

These response bodies are returned from requests to User Interface API resources. They may contain nested response bodies.

A request to a resource always returns an HTTP response code, whether the request was successful or not.

Batch Results

The results from a request to a batch resource. Results include information for each subrequest in the batch.

Object Info

The metadata for an object.

Picklist Values

The picklist values for a field, scoped to a record type.

Record

The field data, API name, and record type information for a record.

Record Defaults

The default information and data needed to create or clone a record. Use these values in a request to POST /ui-api/records.

Record Layout

The layout information for a record.

Record UI

The layout information, field information, and data for a record.

SEE ALSO:

User Interface API Nested Response Bodies

Batch ResultsThe results from a request to a batch resource. Results include information for each subrequest in the batch.

33

Page 38: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Filter Groupand Version

DescriptionTypeProperty

39.0Small, 39.0true if at least one of the results in the result set is anHTTP status code in the 400 or 500 range; falseotherwise

BooleanhasErrors

39.0Small, 39.0Collection of batch result itemsBatch Result Item[]results

SEE ALSO:

Records, Batch Get

Object InfoThe metadata for an object.

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The object's API name.StringapiName

40.0Medium, 40.0The object’s child relationships.Child Relationship[]childRelationships

39.0Small, 39.0Indicates whether the object can becreated.

Booleancreateable

39.0Small, 39.0Indicates whether the object is custom.Booleancustom

39.0Medium, 39.0The ID for the default record type for thisobject, if any. If there isn’t a default type,

StringdefaultRecordTypeId

or if there’s only a master type, this valueis null.

39.0Small, 39.0Indicates whether the object can bedeleted.

Booleandeleteable

39.0Medium, 39.0Indicates whether the object can havefeeds.

BooleanfeedEnabled

39.0Medium, 39.0A map of field API name to informationabout the field. This map only contains

Map<String, Field>fields

fields relevant to the requested layoutand mode.

39.0Medium, 39.0The key prefix for IDs of this object.StringkeyPrefix

39.0Small, 39.0The object's display label.Stringlabel

39.0Medium, 39.0The plural form of the object's displaylabel.

StringlabelPlural

39.0Small, 39.0Indicates whether the object can havea layout.

Booleanlayoutable

34

Object InfoUser Interface API Response Bodies

Page 39: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0Indicates whether the object can appearin Most Recently Used lists.

BooleanmruEnabled

39.0Medium, 39.0A collection of the API names of thefields used to identify the name field for

String[]nameFields

standard and custom objects. Typicallythere is one name field per object,except where FirstName andLastName fields are used.

39.0Small, 39.0Indicates whether the object can bequeried by the context user.

Booleanqueryable

39.0Medium, 39.0A map of record type IDs to informationabout the record type. All record types

Map<String,Record Type Info>

recordTypeInfos

are visible whether or not the user hasaccess to them.

39.0Small, 39.0Indicates whether the object can besearched.

Booleansearchable

39.0Medium, 39.0Theme information for the object.Theme InfothemeInfo

39.0Small, 39.0Indicates whether the object can beupdated.

Booleanupdateable

SEE ALSO:

Object Info, Get

Record UI

Clone Record Defaults, Get

Create Record Defaults, Get

Picklist ValuesThe picklist values for a field, scoped to a record type.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0If the picklist is independent, the map isempty.

If the picklist is dependent, this mapcontains the following:

Map<String,Integer>

controllerValues

• If the controlling field is a picklist, thepicklist value is the value index.

35

Picklist ValuesUser Interface API Response Bodies

Page 40: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

• If the controlling field is a boolean, 0indicates false and 1 indicatestrue. Values in the map are:

– "false": 0

– "true": 1

39.0Small, 39.0The default value for the picklist, or nullif there isn't one.

Picklist ValuedefaultValue

39.0Small, 39.0A User Interface API resource that representsthis payload.

Stringurl

39.0Small, 39.0A list of values for this object, record type,field combination.

Picklist Value[]values

SEE ALSO:

Picklist Values, Get

RecordThe field data, API name, and record type information for a record.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The record's API name.StringapiName

39.0Small, 39.0The field data for this record, matching therequested layout and mode.

Map<String, FieldValue>

fields

39.0Small, 39.0The ID of this record.Stringid

39.0Small, 39.0The record type info for this record, if any.Record Type InforecordTypeInfo

SEE ALSO:

Records, Get, Delete, Patch

Records, Post

Record UI

Clone Record Defaults, Get

Create Record Defaults, Get

Record DefaultsThe default information and data needed to create or clone a record. Use these values in a request to POST /ui-api/records.

36

RecordUser Interface API Response Bodies

Page 41: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Medium, 39.0Record layout information.Record Layoutlayout

39.0Big, 39.0Object metadata.Object InfoobjectInfo

39.0Small, 39.0Pre-populated record data.Recordrecord

SEE ALSO:

Clone Record Defaults, Get

Create Record Defaults, Get

Records, Post

Record LayoutThe layout information for a record.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The layout ID.Stringid

39.0Small, 39.0The layout type for the record. One of thesevalues:

StringlayoutType

• Compact—Use this value to get alayout that contains a record's key fields.

• Full—(Default) Use this value to geta full layout.

39.0Small, 39.0The access mode for the record. This valuedetermines which fields to get from a layout.

Stringmode

Layouts have different fields for create, edit,and view modes. For example, formula fieldsare rendered in view mode, but not in createmode because they’re calculated at runtime, like formulas in a spreadsheet. One ofthese values:

• Create—Use this mode if you intendto build UI that lets a user create arecord. This mode is used by the/ui-api/record-defaults/create/{apiName}resource.

• Edit—Use this mode if you intend tobuild UI that lets a user edit a record.This mode is used by the/ui-api/record-defaults/clone/{recordId}resource.

37

Record LayoutUser Interface API Response Bodies

Page 42: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

• View—(Default) Use this mode if youintend to build UI that displays a record.

39.0Small, 39.0A collection of layout sections.Record LayoutSection[]

sections

SEE ALSO:

Record Layout, Get

Record UI

Clone Record Defaults, Get

Create Record Defaults, Get

Record UIThe layout information, field information, and data for a record.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Medium, 39.0A map of object API names to each object’srecord layout information.

Map<String,Map<String,Map<String,

layouts

Map<String, RecordLayout>>>>

39.0Big, 39.0A map of object API names to each object’smetadata.

Map<String, ObjectInfo>

objectInfos

39.0Small, 39.0A map of record IDs to each record’s data.Map<String,Record>

records

SEE ALSO:

Record UI, Get

User Interface API Nested Response Bodies

These response bodies are nested in top-level response bodies.

A request to a resource always returns an HTTP status code, whether the request was successful or not.

Batch Result Item

The results of one subrequest in a batch request.

38

Record UIUser Interface API Response Bodies

Page 43: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Canvas Layout Component

A canvas component on a record page layout.

Child Relationship

The child relationship on a parent object. Relationships are connections between records. Use relationships to display data aboutrelated object records on a record's detail page.

Custom Link Layout Component

A custom link component on a record page layout.

Duplicate Record Error

Information about duplicate record errors. Duplicate rules are used to control whether and when you can save duplicate recordswithin Salesforce. Duplicate rules tell Salesforce what action to take when you attempt to create a duplicate record.

Error Message

An error code and error message.

Error with Output

Contains extra information about errors. In rare cases, an error message isn't enough to describe the reason for a failure. For example,when a conflicting precondition exists, the error result can include the information about the cause of the conflict.

Field

A field's metadata.

Field Layout Component

A field in a record layout.

Field Value

The raw and displayable field values for a field in a record.

Filtered Lookup Info

Metadata for a lookup filter.

Lead Status Picklist Value Attributes

Additional picklist value attributes for lead statuses.

Location Field

A complex location value for a record field.

Match Result

A duplicate rule match. Duplicate rules are used to control whether and when you can save duplicate records within Salesforce.Duplicate rules tell Salesforce what action to take when you attempt to create a duplicate record. Each duplicate rule requires atleast one matching rule to identify which existing records are possible duplicates.

Opportunity Stage Picklist Value Attributes

Additional picklist value attributes for opportunity stages.

Picklist Value

A single picklist value.

Record Exceptions

A collection of record exception errors.

Record Exception Error

Information about a record exception error.

Record Layout Component

A concrete record layout component.

39

User Interface API Nested Response BodiesUser Interface API Response Bodies

Page 44: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Record Layout Item

An item in a record layout.

Record Layout Row

A row in a record layout.

Record Layout Section

A section in a record layout.

Record Type Info

Informaiton about a record type.

Reference To Info

Information about a reference field's referenced types and the name field names of those types.

Report Layout Component

A report chart component on a record layout page.

Theme Info

Color and icon information for a theme.

Visualforce Layout Component

A Visualforce component on a record layout page.

SEE ALSO:

User Interface API Top-Level Response Bodies

Batch Result ItemThe results of one subrequest in a batch request.

AvailableVersion

Filter Groupand Version

DescriptionTypeProperty

39.0Small, 39.0A response body for a record passed in a request to/ui-api/records/batch/{recordIds}.

One of these types:result

• Record

• Error Message

Important:If theresult isan error,the typeis acollectionof errormessages.

39.0Small, 39.0An HTTP status code indicating the status of thisindividual request in the batch.

IntegerstatusCode

40

Batch Result ItemUser Interface API Response Bodies

Page 45: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Canvas Layout ComponentA canvas component on a record page layout.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The value is Canvas.StringcomponentType

39.0Small, 39.0The location in the application where thecanvas app is being called from. One ofthese values:

StringdisplayLocation

• Chatter—The canvas app was calledfrom the Chatter tab.

• ChatterFeed—The canvas app wascalled from a Chatter canvas feed item.

• MobileNav—The canvas app wascalled from the navigation menu inSalesforce1.

• OpenCTI—The canvas app was calledfrom an Open CTI component.

• PageLayout—The canvas app wascalled from an element within a pagelayout. If the displayLocation isPageLayout, one of thesubLocation values can bereturned.

• Publisher—The canvas app wascalled from a canvas custom quickaction.

• ServiceDesk—The canvas app wascalled from a Salesforce Consolecomponent.

• Visualforce—The canvas app wascalled from a Visualforce page.

• None—The canvas app was calledfrom the Canvas App Previewer.

The sublocation in the applicationwhere the canvas app was called from whenthe canvas app is loaded in a mobile device.The possible values are:

• S1MobileCardFullview—Thecanvas app was called from a mobilecard.

• S1MobileCardPreview—Thecanvas app was called from a mobilecard preview.

41

Canvas Layout ComponentUser Interface API Response Bodies

Page 46: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

• S1RecordHomePreview—Thecanvas app was called from a recorddetail page preview.

• S1RecordHomeFullview—Thecanvas app was called from a pagelayout.

39.0Small, 39.0The height of the component.Stringheight

39.0Small, 39.0The unique ID of the canvas app definition.StringreferenceId

39.0Small, 39.0Indicates whether to show the scroll bar onthe canvas component (true) or not(false).

BooleanshowScroll

39.0Small, 39.0The width of the component.Stringwidth

39.0Small, 39.0The API name of the canvas app.Stringvalue

Child RelationshipThe child relationship on a parent object. Relationships are connections between records. Use relationships to display data about relatedobject records on a record's detail page.

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

40.0Medium, 40.0The API name of the child object thatcontains the reference to the parentobject.

StringchildObjectApiName

40.0Medium, 40.0The field on the child object thatcontains the reference to the parentobject.

Instead of defining relationships throughprimary keys and foreign keys, the

StringfieldName

Salesforce database uses relationshipfields. A relationship field is a customfield that stores the ID of the relatedparent record.

40.0Medium, 40.0A collection of fields of the typeJunctionIdList. A

String[]junctionIdListNames

JunctionIdList is a string arrayof referenced ID values that representthe many-to-many relationship of anunderlying junction entity.

42

Child RelationshipUser Interface API Response Bodies

Page 47: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

Each ID in a JunctionIdList is apolymorphic key, which is an ID that canrefer to more than one type of object.

40.0Medium, 40.0A collection of object names that thepolymorphic keys in the

String[]junctionReferenceTo

junctionIdListNames propertycan reference.

You can query these object names.

40.0Medium, 40.0The name of the relationship.

A name for the child relationship that isunique to the parent. The name is the

StringrelationshipName

plural form of the child object name. Forexample, Account has child relationshipsto Assets, Cases, and Contacts, amongother objects. Account has arelationshipName for eachobject: Assets, Cases, andContacts.

SEE ALSO:

Object Info

Custom Link Layout ComponentA custom link component on a record page layout.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0Indicates how a link behaves on open. Oneof these values:

Stringbehavior

• NewWindow—Open a new window.

• NoSidebar—No sidebar

• OnClickJavaScript—When thelink is clicked, run JavaScript.

• Replace—Replace the current page.

• Sidebar—Sidebar

39.0Small, 39.0The component type. The value isCustomLink.

StringcomponentType

43

Custom Link Layout ComponentUser Interface API Response Bodies

Page 48: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The custom link URL.StringcustomLinkUrl

39.0Small, 39.0The custom link label.Stringlabel

39.0Small, 39.0The value of the custom link component.Stringvalue

Duplicate Record ErrorInformation about duplicate record errors. Duplicate rules are used to control whether and when you can save duplicate records withinSalesforce. Duplicate rules tell Salesforce what action to take when you attempt to create a duplicate record.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

40.0Small, 40.0A collection of duplicate rule match results.Each duplicate rule requires at least one

Match Result []matchResults

matching rule to identify which existingrecords are possible duplicates.

Error MessageAn error code and error message.

AvailableVersion

Filter Groupand Version

DescriptionTypeProperty

39.0Small, 39.0An error code with information about the error, forexample, INSUFFICIENT_PRIVILEGES

StringerrorCode

39.0Small, 39.0Description of errorStringmessage

Error with OutputContains extra information about errors. In rare cases, an error message isn't enough to describe the reason for a failure. For example,when a conflicting precondition exists, the error result can include the information about the cause of the conflict.

AvailableVersion

Filter GroupandVersion

DescriptionTypeProperty

39.0Small, 39.0Indicates the type of the output property. Thevalue is either null or RecordError.

StringenhancedErrorType

39.0Small, 39.0Description of the error.Stringmessage

39.0Small, 39.0The response body returned by the requestedresource. For example, if a successful request

Any response bodyoutput

44

Duplicate Record ErrorUser Interface API Response Bodies

Page 49: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Filter GroupandVersion

DescriptionTypeProperty

returns a Object Info response body but an errortriggers the Error with Output response body, thevalue of the output property is an Object Inforesponse body.

When an error occurs related to record create orupdate, this value is Record Exceptions.

FieldA field's metadata.

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The API name for this field.StringapiName

39.0Small, 39.0Indicates whether the field is a customformula field.

Booleancalculated

39.0Small, 39.0Indicates whether the field is a top-levelcompound field.

If the dataType is Location, thisvalue is usually false.

Booleancompound

39.0Small, 39.0The name of the field that controls thevalues of this picklist.

StringcontrollerName

39.0Small, 39.0Indicates whether the field can becreated.

Booleancreateable

39.0Small, 39.0Indicates whether the field is custom.Booleancustom

39.0Small, 39.0Field type. One of these values:StringdataType

• Address

• Base64

• Boolean

• ComplexValue—Complex ValueType (CVT).

• Currency

• Date

• DateTime

• Double

• Email

• EncryptedString

45

FieldUser Interface API Response Bodies

Page 50: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

• Int

• Location

• MultiPicklist

• Percent

• Phone

• Picklist

• Reference

• String

• TextArea

• Time

• Url

39.0Small, 39.0More data type information. One ofthese values:

StringextraTypeInfo

• ExternalLookup—Externallookup

• ImageUrl—Image url

• IndirectLookup—Indirectlookup

• PersonName—Person name

• PlainTextArea—Plain textarea

• RichTextArea—Rich text area

• SwitchablePersonName—Switchableperson name

39.0Small, 39.0Indicates whether the field is filterable.If true, then this field can be specified inthe WHERE clause of a SOQL statement.

Booleanfilterable

39.0Small, 39.0If the field is a reference field type witha lookup filter, this value contains thelookup information.

Filtered LookupInfo

filteredLookupInfo

39.0Small, 39.0Indicates whether the field storesnumbers to 8 decimal places regardlessof what's specified in the field details.

BooleanhighScaleNumber

39.0Small, 39.0Indicates whether the field has beenformatted for HTML and should be

BooleanhtmlFormatted

encoded for display in HTML. Alsoindicates whether a field is a custom

46

FieldUser Interface API Response Bodies

Page 51: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

formula field that has an IMAGE textfunction.

39.0Small, 39.0Text label that is displayed next to thefield in the Salesforce user interface. Thislabel may be localized.

Stringlabel

39.0Small, 39.0For string fields, the maximum size ofthe field in number of Unicodecharacters (not bytes).

Integerlength

39.0Small, 39.0Indicates whether the field is a namefield.

BooleannameField

39.0Small, 39.0A mapping of record type IDs to PicklistValues resources. Make a request to the

Map<String, URL>picklistValuesUrls

URL to get picklist values for the field inthe context of a record type.

39.0Small, 39.0For double fields, indicates themaximum number of digits that can be

Integerprecision

stored, on both sides of the decimalpoint.

39.0Small, 39.0Indicates whether the field is a foreignkey reference to another record.

Booleanreference

39.0Medium, 39.0For indirect lookup relationships onexternal objects, the target custom fieldof the referenced object.

StringreferenceTargetField

39.0Small, 39.0For fields that refer to other objects, thislist includes information about the

Reference To Info[]referenceToInfos

object types and name fields of thereferenced objects.

39.0Small, 39.0The name of the relationship, if thisrelationship is a master-detailrelationship field.

StringrelationshipName

39.0Small, 39.0Indicates whether the field is requiredon create or update.

Booleanrequired

39.0Small, 39.0For double fields, indicates the numberof digits to the right of the decimal point.

Integerscale

39.0Small, 39.0Indicates whether a query can sort onthis field.

Booleansortable

39.0Small, 39.0Indicates whether the field can beupdated.

Booleanupdateable

47

FieldUser Interface API Response Bodies

Page 52: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Field Layout ComponentA field in a record layout.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The value is Field.StringcomponentType

39.0Small, 39.0The label of the field.Stringlabel

39.0Small, 39.0The API name of the field.Stringvalue

Field ValueThe raw and displayable field values for a field in a record.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The displayable value for a field. For a date,this value is familiar to users rather than an

StringdisplayValue

ISO 8601 formatted date value, which is theraw form. Currency values are also formattedfor display. If data can be localized to thecontext user's language using thetoLabel() function, that value is alsodisplayed here.

39.0Small, 39.0The value of a field in its raw data form.Objectvalue

Filtered Lookup InfoMetadata for a lookup filter.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0A collection of controlling fields when thelookup filter is dependent on the sourceobject.

String[]controllingFields

39.0Small, 39.0Indicates whether the lookup filter isdependent on the source object.

Booleandependent

39.0Small, 39.0Indicates whether the lookup filter isoptional.

BooleanoptionalFilter

48

Field Layout ComponentUser Interface API Response Bodies

Page 53: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Lead Status Picklist Value AttributesAdditional picklist value attributes for lead statuses.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0If this status indicates the lead has beenconverted, the value is true, otherwise

Booleanconverted

false. For more info, see thedocumentation for the LeadStatus standardobject.

39.0Small, 39.0The value is LeadStatus. Indicates thatthese value attributes are associated withthe status of a Lead.

StringpicklistAttributesValueType

Location FieldA complex location value for a record field.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0Gets the latitude of the location. This valuemaybe null if both latitude and longitudeare null.

Doublelatitude

39.0Small, 39.0Gets the longitude of the location. This valuemaybe null if both latitude and longitudeare null.

Doublelongitude

Match ResultA duplicate rule match. Duplicate rules are used to control whether and when you can save duplicate records within Salesforce. Duplicaterules tell Salesforce what action to take when you attempt to create a duplicate record. Each duplicate rule requires at least one matchingrule to identify which existing records are possible duplicates.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

40.0Small, 40.0The API name of the object.StringapiName

40.0Big, 40.0Indicates whether the rule allows a duplicateto be saved.

BooleanisAllowSave

40.0Small, 40.0The IDs of the matching records.String[]matchRecordIds

49

Lead Status Picklist Value AttributesUser Interface API Response Bodies

Page 54: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

40.0Big, 40.0The developer name of the matchingduplicate rule.

StringmatchRule

SEE ALSO:

Duplicate Record Error

Opportunity Stage Picklist Value AttributesAdditional picklist value attributes for opportunity stages.

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0Indicates whether this opportunity stagevalue represents a closed opportunity.

Booleanclosed

Multiple opportunity stage values canrepresent a closed opportunity. For moreinfo, see the documentation for theOpportunityStage standard object.

39.0Small, 39.0The default percentage estimate of theconfidence in closing a specific

DoubledefaultProbability

opportunity for this opportunity stagevalue. May be null if forecasting is notenabled for the org. For more info, seethe documentation for theOpportunityStage standard object.

39.0Small, 39.0The default forecast category value forthis opportunity stage value. May be

StringforecastCategoryName

null if forecasting is not enabled forthe org. For more info, see thedocumentation for theOpportunityStage standard object.

39.0Small, 39.0The value is OpportunityStage.Indicates that these value attributes are

StringpicklistAttributesValueType

associated with the status of aOpportunity.

39.0Small, 39.0Indicates whether this opportunity stagevalue represents a won opportunity.

Booleanwon

Multiple opportunity stage values canrepresent a won opportunity. For moreinfo, see the documentation for theOpportunityStage standard object.

50

Opportunity Stage Picklist Value AttributesUser Interface API Response Bodies

Page 55: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Picklist ValueA single picklist value.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Medium, 39.0This property might contain a nestedresponse body to help consumers

Either null or oneof these responsebodies:

attributes

understand the meaning of the picklistvalue.• Lead Status

Picklist ValueAttributes

• OpportunityStage PicklistValue Attributes

39.0Small, 39.0The displayable value of the picklist to usein a UI.

Stringlabel

39.0Small, 39.0If the picklist is a dependent picklist, theproperty contains a list of the controlling

Integer[]validFor

value indexes for which this value is valid. Ifthe picklist is an independent picklist, thelist is empty.

39.0Small, 39.0The value of the picklist to use in the API.Stringvalue

Record ExceptionsA collection of record exception errors.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0General errors.Record ExceptionError []

errors

39.0Small, 39.0A map of field IDs to field-specific errors.Map<String, RecordException Error []>

fieldErrors

Record Exception ErrorInformation about a record exception error.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

40.0Small, 40.0If the field is a constituent of a compoundfield, this property contains the API name

StringconstituentField

51

Picklist ValueUser Interface API Response Bodies

Page 56: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

of the constituent field, and the fieldproperty contains the API name of thecompound field.

If the field is not a constituent of acompound field, or if no field applies to theerror, the value is null.

40.0Small, 40.0Information about possible duplicaterecords. When the error code is

Duplicate RecordError

duplicateRecordError

DUPLICATES_DETECTED, this propertymight contain a value.

39.0Small, 39.0A field API name. If no field applies to theerror, the value is null.

Stringfield

39.0Small, 39.0A field label. If no field applies to the error,the value is null.

StringfieldLabel

39.0Small, 39.0An error message.Stringmessage

39.0Small, 39.0An error status code.StringstatusCode

Record Layout ComponentA concrete record layout component.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0One of these values:StringcomponentType

• AnalyticsCloud

• Canvas

• CustomLink

• EmptySpace

• ExpandedLookup

• Field

• ReportChart

• Separator

• VisualforcePage

39.0Small, 39.0The value of this component.Stringvalue

52

Record Layout ComponentUser Interface API Response Bodies

Page 57: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Record Layout ItemAn item in a record layout.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0Indicates whether the itemcan be edited on create.

BooleaneditableForNew

39.0Small, 39.0Indicates whether the itemcan be edited on update.

BooleaneditableForUpdate

39.0Small, 39.0The text label for the item.Stringlabel

39.0Small, 39.0A collection of componentsthat make up the item.

Collection of components. Collectioncan contain any of these components:

layoutComponents

• Canvas Layout Component

• Custom Link Layout Component

• Field Layout Component

• Record Layout Component

• Report Layout Component

• Visualforce Layout Component

39.0Small, 39.0The ID field name of alookup field.

StringlookupIdApiName

40.0Small, 40.0Indicates whether the fieldis required in a layout forcreate and update.

Booleanrequired

39.0Small, 39.0Indicates whether the itemis sortable.

Booleansortable

Record Layout RowA row in a record layout.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0A collection of items in the row, from left toright. Might not extend to the last column.

Record Layout Item[]layoutItems

Record Layout SectionA section in a record layout.

53

Record Layout ItemUser Interface API Response Bodies

Page 58: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The number of columns in the section.Integercolumns

39.0Small, 39.0The heading text for the section.Stringheading

39.0Medium, 39.0Indicates whether the section should initiallybe displayed as collapsed.

BooleanisCollapsed

39.0Small, 39.0A collection of the rows in the section.Record Layout Row[]layoutRows

39.0Small, 39.0The number of rows in the section.Integerrows

39.0Medium, 39.0Indicates whether the heading text isexpected to be displayed.

BooleanuseHeading

Record Type InfoInformaiton about a record type.

AvailableVersion

Filter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0Indicates whether this record type isavailable to the context user whencreating a new record.

Booleanavailable

39.0Small, 39.0Indicates whether this is the defaultrecord type mapping for the associatedobject.

BooleandefaultRecordTypeMapping

39.0Small, 39.0Indicates whether this is the masterrecord type. The master record type is

Booleanmaster

the default record type that’s used whena record has no custom record typeassociated with it.

39.0Small, 39.0The record type's API name.Stringname

39.0Small, 39.0The ID of the record type.StringrecordTypeId

Reference To InfoInformation about a reference field's referenced types and the name field names of those types.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The object API name of a type beingreferenced in a relationship.

StringapiName

54

Record Type InfoUser Interface API Response Bodies

Page 59: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0A collection of names of the name fields forthis object type. Combined with the

String[]nameFields

relationship name, you can determine howto query this type's name fields, for example,Parent.Name. Typically there is onename field per object, except whereFirstName and LastName fields areused.

Report Layout ComponentA report chart component on a record layout page.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0Indicates whether to cache data (true) ornot (false).

BooleancacheData

39.0Small, 39.0The value is ReportChart.StringcomponentType

39.0Small, 39.0An error message.Stringerror

39.0Small, 39.0A filter for the report.Stringfilter

39.0Small, 39.0Indicates whether to hide the componentwhen there's an error (true) or not(false).

BooleanhideOnError

39.0Small, 39.0A placeholder for the report.Stringplaceholder

39.0Small, 39.0The component's report ID.StringreportId

39.0Small, 39.0Indicates whether to show the title of thereport (true) or not (false).

BooleanshowTitle

39.0Small, 39.0The size of the component.Stringsize

39.0Small, 39.0The value of the component.Stringvalue

Theme InfoColor and icon information for a theme.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0ColorStringcolor

39.0Small, 39.0Icon URLStringiconUrl

55

Report Layout ComponentUser Interface API Response Bodies

Page 60: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Visualforce Layout ComponentA Visualforce component on a record layout page.

Available VersionFilter Group andVersion

DescriptionTypeProperty Name

39.0Small, 39.0The value is VisualforcePage.StringcomponentType

39.0Small, 39.0The height of the component.Stringheight

39.0Small, 39.0Indicates whether to show the section labelwith this Visualforce component (true) ornot (false).

BooleanshowLabel

39.0Small, 39.0Indicates whether to show the scroll bar onthe canvas component (true) or not(false).

BooleanshowScroll

39.0Small, 39.0The value of this component.Stringvalue

39.0Small, 39.0The Visualforce URL.StringvisualforceUrl

39.0Small, 39.0The width of the component.Stringwidth

56

Visualforce Layout ComponentUser Interface API Response Bodies

Page 61: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

INDEX

BBatch Result Item 40Batch Results 33

CCanvas Layout Component 41Child Relationship 42Clone Record Defaults 27Create Record Defaults 28Custom Link Layout Component 43

DDuplicate Record Error 44

EError Message 44Error responses 10Error with Output response body 44

FField 45Field Layout Component Representation 48Field Value 48Filtered Lookup Info 48

LLead Status Picklist Value Attributes 49Location Field 49

MMatch Result 49

OObject Info 34Object Layout, Get. 14Object Metadata, Get 16Opportunity Stage Picklist Value Attributes 50

PPicklist Value 51Picklist Values 35Picklist Values, Get 29

RRecord 36

Record Defaults 36Record Exception 51Record Exception Error 51Record Input 31Record Layout 37Record Layout Component 52Record Layout Item 53Record Layout Row 53Record Layout Section 53Record Type Info 54Record UI 38Record UI, Get 12Records, Batch Get 20Records, Get 17Records, Post 22Reference To Info 54Report Layout Component 55Request bodies

Record Input 31Resources

clone record defaults 27create record defaults 28error responses 10object layout, get 14object metadata, get 16picklist values, get 29record UI, get 12records, batch get 20records, get 17records, post 22

Response bodiesBatch Result Item 40Batch Results 33Canvas Layout Component 41Child Relationship 42Custom Link Layout Component 43Duplicate Record Error 44Error Message 44Error with Output 44Field 45Field Layout Component 48Field Value 48Filtered Lookup Info 48Lead Status Picklist Value Attributes 49Location Field 49Match Result 49

57

Page 62: User Interface API Developer Guide · Each response body is a map because you can pass a list of record IDs to the request ... "Master", "recordTypeId ... User Interface API Developer

Response bodies (continued)Object Info 34Opportunity Stage Picklist Value Attributes 50Picklist Value 51Picklist Values 35Record 36Record Defaults 36Record Exception 51Record Exception Error 51Record Layout 37Record Layout Component 52Record Layout Item 53Record Layout Row 53Record Layout Section 53Record Type Info 54

Response bodies (continued)Record UI 38Reference To Info 54Report Layout Component 55Theme Info 55Visualforce Layout Component 56

TTheme Info 55

UUser Interface API quick start 4

VVisualforce Layout Component 56

58

Index