Salesforce Experience Cloud GraphQL API

GraphQL query and mutation operations

Documentation

📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.exp_cloud_apis.meta/exp_cloud_apis/
📖
Authentication
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.communities_dev.meta/communities_dev/communities_dev_intro_before.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/quickstart_dev_org.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_cms.htm
📖
GettingStarted
https://developer.salesforce.com/docs/platform/cms/guide/cms-developer-guide.html
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.exp_cloud_lwr.meta/exp_cloud_lwr/template_overview.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.graphql.meta/graphql/
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.graphql.meta/graphql/
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_managed_content_resources.htm
📖
GettingStarted
https://developer.salesforce.com/docs/platform/cms/guide/cms-dev-retrieve-cms-content-with-a-connected-app.html
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_cms_delivery_content.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_get_started.htm
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_get_started.htm

Specifications

Other Resources

OpenAPI Specification

salesforce-experience-cloud-graphql-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Salesforce Experience Cloud Salesforce CMS Connect Actions GraphQL API
  description: Manage content, channels, and media in Experience Cloud CMS. Supports creating, updating, and delivering managed content across channels for headless content delivery and site publishing. Part of the Salesforce Connect REST API.
  version: 59.0.0
  contact:
    name: Salesforce Developer Support
    url: https://developer.salesforce.com/
  license:
    name: Salesforce Master Subscription Agreement
    url: https://www.salesforce.com/company/legal/sfdc-website-terms-of-service/
servers:
- url: https://{instance}.salesforce.com/services/data/v59.0/connect/cms
  description: Salesforce Instance
  variables:
    instance:
      default: yourInstance
      description: Your Salesforce instance name or custom domain
security:
- oauth2: []
- bearerAuth: []
tags:
- name: GraphQL
  description: GraphQL query and mutation operations
paths:
  /graphql:
    post:
      operationId: executeGraphqlQuery
      summary: Salesforce Experience Cloud Execute a GraphQL Query or Mutation
      description: Executes a GraphQL query or mutation against the Salesforce UIAPI schema. The UIAPI schema provides access to records, object metadata, list views, and related data. Supports standard GraphQL features including variables, fragments, and operation names. Queries are scoped to the UIAPI namespace which provides formatted field values, layout-aware data access, and respects sharing rules.
      tags:
      - GraphQL
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            examples:
              queryAccounts:
                summary: Query Account records
                value:
                  query: "query accounts {\n  uiapi {\n    query {\n      Account(first: 10) {\n        edges {\n          node {\n            Id\n            Name { value displayValue }\n            Industry { value displayValue }\n          }\n        }\n        totalCount\n      }\n    }\n  }\n}\n"
              queryWithVariables:
                summary: Query with variables
                value:
                  query: "query getAccount($id: ID!) {\n  uiapi {\n    query {\n      Account(where: { Id: { eq: $id } }) {\n        edges {\n          node {\n            Id\n            Name { value }\n          }\n        }\n      }\n    }\n  }\n}\n"
                  variables:
                    id: 001XX000003GHP1
                  operationName: getAccount
      responses:
        '200':
          description: GraphQL query executed successfully. Note that GraphQL always returns HTTP 200, even when there are errors in the query. Check the errors array in the response body for any issues.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '400':
          description: Malformed request (invalid JSON or missing query field)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ErrorResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Unauthorized:
      description: Unauthorized - invalid or expired OAuth token
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ErrorResponse'
  schemas:
    GraphQLRequest:
      type: object
      description: A GraphQL request containing the query and optional parameters
      required:
      - query
      properties:
        query:
          type: string
          description: The GraphQL query or mutation string. Queries operate within the UIAPI namespace, accessing records via uiapi.query.{ObjectName}.
        variables:
          type: object
          description: Variables for parameterized queries. Keys correspond to variable names defined in the query.
          additionalProperties: true
        operationName:
          type: string
          description: Name of the operation to execute when the query document contains multiple operations.
    GraphQLFieldValue:
      type: object
      description: A field value in a GraphQL response, providing both raw value and locale-formatted display value
      properties:
        value:
          description: Raw field value
        displayValue:
          type: string
          description: Formatted display value (locale-aware)
    GraphQLResponse:
      type: object
      description: Response from a GraphQL query execution
      properties:
        data:
          type: object
          description: The data returned by the query. Structure mirrors the query shape. Contains a uiapi root object with query results.
          properties:
            uiapi:
              type: object
              description: Root UIAPI namespace
              properties:
                query:
                  type: object
                  description: Contains the query results keyed by object name. Each object result uses Relay-style pagination with edges and nodes.
                  additionalProperties:
                    $ref: '#/components/schemas/GraphQLConnection'
          additionalProperties: true
        errors:
          type: array
          description: Errors encountered during query execution. Present alongside data if some fields failed but others succeeded.
          items:
            $ref: '#/components/schemas/GraphQLError'
        extensions:
          type: object
          description: Extension data provided by the server, including query cost and performance metrics.
          additionalProperties: true
    GraphQLEdge:
      type: object
      description: An edge in a Relay-style connection containing a node
      properties:
        cursor:
          type: string
          description: Cursor for this edge (used for pagination)
        node:
          type: object
          description: The record node containing field values. Each field returns an object with value and optional displayValue properties.
          properties:
            Id:
              type: string
              description: Record ID
          additionalProperties:
            $ref: '#/components/schemas/GraphQLFieldValue'
    GraphQLError:
      type: object
      description: A GraphQL error
      properties:
        message:
          type: string
          description: Human-readable error message
        locations:
          type: array
          description: Locations in the query where the error occurred
          items:
            type: object
            properties:
              line:
                type: integer
              column:
                type: integer
        path:
          type: array
          description: Path to the field that caused the error
          items:
            type: string
        extensions:
          type: object
          description: Additional error details
          properties:
            errorCode:
              type: string
            classification:
              type: string
          additionalProperties: true
    ErrorResponse:
      type: object
      description: Standard Salesforce REST API error
      properties:
        errorCode:
          type: string
        message:
          type: string
    GraphQLConnection:
      type: object
      description: A Relay-style connection containing edges (records) and pagination information
      properties:
        edges:
          type: array
          description: List of edges containing record nodes
          items:
            $ref: '#/components/schemas/GraphQLEdge'
        pageInfo:
          type: object
          description: Pagination information
          properties:
            hasNextPage:
              type: boolean
              description: Whether more pages are available
            hasPreviousPage:
              type: boolean
              description: Whether previous pages exist
            startCursor:
              type: string
              description: Cursor for the first edge
            endCursor:
              type: string
              description: Cursor for the last edge
        totalCount:
          type: integer
          description: Total number of matching records
  securitySchemes:
    oauth2:
      type: oauth2
      description: Salesforce OAuth 2.0 authentication
      flows:
        authorizationCode:
          authorizationUrl: https://login.salesforce.com/services/oauth2/authorize
          tokenUrl: https://login.salesforce.com/services/oauth2/token
          scopes:
            api: Access and manage your data
            content: Manage CMS content
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: OAuth2
      description: Bearer token obtained through OAuth 2.0 flow