API End-of-Life Policy: Salesforce is committed to supporting each API version for a minimum of three years from the date of first release. To mature and improve the quality and performance of the API, versions that are more than three years old sometimes are no longer supported.
All Supported Objects: User Interface API supports many standard objects as well as all custom and external objects.
User Interface API Appendices: User Interface API supports all custom objects and external objects and many standard objects. Use these appendices to find more information on supported objects. You can also find retired resources, request bodies, and response bodies here.
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.
Work with Actions: Use the Actions resources to get data and metadata about actions displayed in the Salesforce UI. Examples include standard and custom buttons, quick actions, and productivity actions.
Manage Apps: An app is a collection of items that work together to serve a particular function. Salesforce apps come in two flavors: Classic apps and Lightning apps. Classic apps are created and managed in Salesforce Classic. Lightning apps are created and managed in Lightning Experience. Admins customize both types of apps to match the way users work.
Manage Favorites: Favorites let users access frequently used pages in Salesforce. Use User Interface API Favorites resources to manage favorites.
Work with List Views: Use the List View resources to get record data and metadata about list views displayed in the Salesforce UI.
Work with Records: Use User Interface API to build UI that lets users create, read, update, and delete Salesforce records. Let’s look at two of the trickier aspects of the API: how to work with child relationships, and how to upload binary files to records.
Upload Binary Files: If a record has a Base64 field, you can upload binary data to the field when you create or update a record.
Get Child Records: User Interface API has several resources that include child records in their responses. If a record has many child relationships, a response can be huge and have a negative effect on performance. To get only the records you need, request records for specific child relationships and set the page size of the results.
Upload Files: Upload documents and images or update the file with a new version.
Build UI for Picklists: User Interface API exposes properties and resources that make it easy for a client to build picklists and dependent picklists.
Get Started with User Interface API: Build Salesforce UI for native mobile apps and custom web apps using the same API that Salesforce uses to build Lightning Experience and Salesforce for Android, iOS, and mobile web. Build user interfaces that let users work with records, list views, actions, favorites, and more. Not only do you get data and metadata in a single response, but the response matches metadata changes made to the org by Salesforce admins. You don’t have to worry about layouts, picklists, field-level security, or sharing—all you have to do is build an app that users love.
Authentication, Versioning, Limits, ETag, and More: Learn the high-level facts about how to use User Interface API. How do you authenticate? How is the API versioned? What are the rate limits? All the information you need, available at a glance.
User Interface API Sample Apps: We’ve built two sample apps that use User Interface API to create, read, update, and delete records. The apps are open-source and available on GitHub.
Supported Objects: User Interface API supports all custom objects and external objects and many standard objects.
List View Supported Objects: List views support a subset of the standard objects that User Interface API supports.
User Interface API Quick Start: Use the Postman desktop app or web-based UI to easily explore and test the UI API and other Salesforce APIs against your orgs.
Action Input: Get the actions on related lists on a record detail page.
List Order By Input: Information describing how to order a related list. This request body supports sorting related lists only by one field. Use this request body to update a related list.
Navigation Item Collection Input: A collection of all the navigation items (tabs) for an app. Pass this request body to get or update a user’s personalized navigation items.
Navigation Item Input: Represents the list of navigation items in the order that you want them to appear in the app.
Page Reference Input: To add a navigation item, include a pageReference. A pageReference is a JSON object that describes the navigation item’s page type, its attributes, and the state of the page.
Actions: Use these resources to get data and metadata about actions displayed in the Salesforce UI. Examples include standard and custom buttons, quick actions, and productivity actions.
Get Apps: Get metadata for all the apps a user has access to. Metadata for the selected app includes tabs on the app’s navigation bar. Metadata for other apps doesn’t include tabs on the navigation bar.
Update Last Selected App: Returns metadata for an app, and saves an app as the last selected for a user.
Apps: Use these resources to get data and metadata for apps displayed in the Salesforce UI.
Get Last Selected App: Retrieves the app the current user last selected or the app the user sees by default.
Update Personalized Navigation Items: Updates the order of a user’s personalized navigation items (tabs) and adds a navigation item to the list in the order specified.
Get Child Records: Get child records for a specified record and child relationship name. Relationships are connections between records. On a record detail page, each record in a related list has a child relationship to the parent record.
Get Duplicate Management Configuration for a Specified Object: Learn whether duplicate management is configured for the specified object. If duplicate management is configured, learn about the object's duplicate rules and matching rules. Use the information in the response to know when to check for duplicate records.
Favorites: Use these resources to create and update a single favorite or a collection of favorites, and to get favorites usage information. These resources make it easy to build UI for favorites.
Update a Batch of Favorites: Update all favorites at once. The sort order is updated to the given relative ordering. Any favorites missing from the request body are deleted.
Update Usage of a Favorite: Update the usage of an individual favorite. Increments the accessCount and sets the lastAccessDate to the current system time.
Get Lookup Field Suggestions: When a user edits a lookup field, use this resource to search for and display suggestions. You can search for most recently used matches, for matching names, or for any match in a searchable field. You can also specify lookup filter bindings for dependent lookups.
Get Lookup Field Suggestions for a Specified Object: When a user edits a lookup field, use this resource to search for and display suggestions for a specified object. You can search for most recently used matches, for matching names, or for any match in a searchable field. You can also specify lookup filter bindings for dependent lookups.
Get Lookup Field Suggestions With POST: When a user edits a lookup field, use this resource to search for and display suggestions. You can search for most recently used matches, for matching names, or for any match in a searchable field. You must specify dependent lookup field values used by lookup filters in the `sourceRecord` request body parameter.
Get MRU List View Actions: Get the header actions on the most recently used (MRU) list view for objects.
Get Object Metadata: Get metadata about a specific object. The response includes metadata describing fields, child relationships, record type, and theme.
Get a Batch of Object Metadata: Get metadata about specific objects. The response includes a batch of metadata describing fields, child relationships, record type, and theme. You can request up to 2,000 objects in an object metadata request.
Get a Directory of Supported Objects: Get a directory of objects that are supported by User Interface API and accessible to the context user. The directory includes a /ui-api/object-info/{objectApiName} resource for each supported object.
Get Photo Actions: Get the photo actions for pages. Currently, only group and user pages support photo actions.
Get Values for a Picklist Field: If a field’s dataType property is equal to Picklist or MultiPicklist, use this resource to get its values.
Get Values for All Picklist Fields of a Record Type: Use this resource to get the values for all the picklist fields of a specific record type. This resource is especially useful for getting dependent picklist values. For example, if an object has a tree of dependent picklists (Continents__c, Countries__c, Cities__c), use this resource to get all the values for each picklist in one request.
Check for Duplicate Records: Before updating or creating a record, you can check whether a duplicate record exists. Use the response to learn whether to block or allow the action, and whether to warn the user.
Get a Quick Action Layout: Get information about the record layout used by a Create a Record or Update a Record quick action.
Records: Use these resources to get metadata and data about objects and records. These resources make it easy to build Salesforce UI.
Get Default Values to Clone a Record: Get the default layout information, object information, and data for cloning a record. After getting the default values, make a request to POST /ui-api/records to create the record.
Get Default Values to Create a Record: Get the default values for fields for a new record of a specified object and optional record type. After getting the default values, make a request to POST /ui-api/records to create the record.
Get Default Values to Clone a Record—Lightweight: Get the default values for fields for cloning a record. You must specify the fields you want returned. This resource doesn’t use or return layout information. After getting the default values, make a request to POST /ui-api/records to create the record.
Get Default Values to Create a Record—Lightweight: Get the default values for fields for a new record of a specified object and optional record type. You must specify the fields you want returned. This resource doesn’t use or return layout information. After getting the default values, make a request to POST /ui-api/records to create the record.
Get a Batch of Related List Actions with a Request Body: Get the actions on a batch of related lists for a record. This resource uses the POST method so you can enter request parameters in the request body instead using complex URL parameters.
Get Related List Actions with a Request Body: Get the actions on related lists for a record detail page. This resource uses the POST method so you can enter request parameters in the request body instead using complex URL parameters.
Get Related List Records with a Request Body: Returns record data for up to 1,999 records in a related list. This resource uses the POST method to let you enter request parameters in the request body instead of the URL.
Session CSRF Token: Get the Cross-Site Request Forgery (CSRF) token for your session to protect requests from malicious third-party sites forgeries.
Get Active Theme: Get a Salesforce org’s active theme. A theme uses colors, images, and banners to change the overall appearance of Salesforce. Administrators can define themes and switch themes to provide a different look. The User Interface API response matches the Admin’s selection.
Update a Record with a Quick Action: Perform an Update a Record quick action. To perform a quick action that creates or updates a record, you can also use the POST method.
Action: The actions for a single record or a collection of records.
Child Relationship: The child relationship on a parent object. Relationships are connections between records. Use relationships to display data about related object records on a record's detail page.
Duplicate Record Error: Information about duplicate record errors. 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.
Duplicate Result Info: The result of the check for duplicate records. If duplicate records exist, returns the records' IDs and the duplicate rule that was used to match the records.
Duplicate Rule Filter Item: A filter, or condition, for a duplicate rule. For example, a condition can specify that this rule applies only to movies that were produced in the United States.
Duplicates: The results of a check for duplicate records.
Duplicates Configuration: Contains information about duplicate management configuration for an object. Learn whether duplicate management is configured, which fields are used to determine whether duplicate records exist, and which duplicate rules are active.
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.
Lookup Values: Records, organized by object type, and metadata in a lookup relationship.
Match: A group of records that match the duplicate rules.
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 at least one matching rule to identify which existing records are possible duplicates.
Match Rule: A match rule defines how duplicate records are identified in duplicate rules and duplicate jobs. Learn about one of the match rules for the specified object, including the match rule's name and the fields that the match rule checks.
Object Info Directory: A directory of objects that are supported by User Interface API and available to the context user.
Object Info Directory Entry: An entry in the Object Info Directory, which is a directory of objects that User Interface API supports and that the context user can access.
Picklist Values: The picklist values for a field, scoped to a record type. If a picklist is dependent, this response includes the values of its immediate controlling field and how they map to the picklist.
Picklist Values Collection: A collection of picklist values for all the picklists of a specified record type.
Platform Action: The metadata, layout information, and data for a platform action.
Record: The field data, API name, child relationship data, and record type information for a record.
Record Collection: A paginated collection of Record response bodies.
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 Defaults Template Clone: A record template containing the default information and data needed to clone a record. Use these values in a request to POST /ui-api/records.
Record Defaults Template Create: A record template containing the default information and data needed to create a record. Use these values in a request to POST /ui-api/records.
Record Layout Save Option: The save option for a record layout. Save options define behavior that occurs when objects are created or modified using the given layout. For example, for Cases and Leads, a “UseDefaultAssignmentRule” save option is exposed to control whether assignment rules are applied when Cases or Leads are created or edited.
Record Template Clone: A record template containing the default information and data needed to clone a record. Use these values in a request to POST /ui-api/records.
Record Template Create: A record template containing the default information and data needed to create a record. Use these values in a request to POST /ui-api/records.
Theme: A set of images and banners that make up a theme. Banners display across the top of a page and have a higher aspect ratio than images.
Theme Banner: A theme banner image. Theme banners have a higher aspect ratio than theme images. The banner size may change slightly, so code accordingly.
Theme Image: A theme image at three sizes: small, medium, and large. Specific sizes may change slightly, so code accordingly.
Theme Info: Color and icon information for a theme.