---
schema_version: "1"
id: 551984b76876b56fa4d740222c1a0fdb1d5c70225e4402cc50639bc808e8d8ac
title: What is GraphQL API?
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/graphql-api/graphql/guides/intro-graphql-api.md
canonical_url: https://developer.salesforce.com/docs/platform/graphql/guide/intro-graphql-api.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 08ac778deee328d384ab9eaeb3b48495cd7bcc6e5d314c3720b07864cb2734b3
products:
  - GraphQL API
---
# What is GraphQL API?

GraphQL addresses many pain points for application developers. All GraphQL servers adhere to a [specification](https://spec.graphql.org/), which features patterns that make it easier to build complex experiences across a wide variety of platforms and devices.

Salesforce GraphQL API is available in **Enterprise**, **Performance**, **Unlimited**, and **Developer** Editions. It adheres to the [June 2018](https://spec.graphql.org/June2018/) version of the spec.

These patterns are available for Salesforce developers.

- Field selection
- Resource aggregation
- Schema introspection

Field selection requires the client generating the GraphQL query to explicitly declare which fields to receive in the response. This technique reduces the size of the payload, as the client receives only fields that the query includes.

Aggregation allows the client to specify a traversal across the fields in the GraphQL schema. Aggregations reduce round trips between the client and server, returning a set of related resources within a single response.

Introspection sends a query to the GraphQL server to ask questions about the types, fields, and their relationships within the schema. Combining all these patterns results in more responsive, higher-quality applications.

GraphQL API includes:

- Concrete representations of your [UI API Enabled](https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_all_supported_objects.htm) sObjects, honoring the [object-level security and field-Level security](https://developer.salesforce.com/docs/atlas.en-us.securityImplGuide.meta/securityImplGuide/security_data_access.htm) of the context user. Therefore, two different users can have two different views of the GraphQL schema based on their access permissions.

  Starting in API version 68.0, admins can control unauthenticated guest user access to GraphQL API from Setup. In the Quick Find box, enter **API Access Controls** and select it, and then update guest user access. GraphQL API honors object-level and field-level security for guest user context users.

- Adherence to the [Relay Connection Specification](https://relay.dev/graphql/connections.htm) if working with paged resources.

For more information about getting started with GraphQL API, we recommend these resources.

- [Introducing the Salesforce GraphQL API](https://developer.salesforce.com/blogs/2022/03/introducing-the-salesforce-graphql-api) (Salesforce Developers Blog)
- [Exploring the Salesforce GraphQL API – Part Two](https://developer.salesforce.com/blogs/2022/05/exploring-the-salesforce-graphql-api-part-two) (Salesforce Developers Blog)
- [codeLive: GraphQL for Salesforce Developers](https://www.youtube.com/watch?v=A9_E7_EM9Vw) (YouTube Video)
