Home / lwc / experience-cloud-api-access
experience-cloud-api-access
Use this skill when configuring or troubleshooting API access for Experience Cloud external users and guest users: guest user Apex data access, Customer Community Plus or Partner Community REST/SOAP API access. NOT for internal Salesforce API authentication, non-community OAuth flows, or internal u — use security/experience-cloud-security.
Open the skill folder on GitHub
Experience Cloud API Access
This skill activates when a practitioner needs to configure or troubleshoot API access for Experience Cloud external users (guest, Customer Community, Customer Community Plus, or Partner Community). It covers the hard license-tier boundaries on REST/SOAP API access, Apex sharing enforcement for guest users, and the OAuth scope model for authenticated external users. It does NOT cover internal user API authentication or non-community OAuth flows.
Before Starting
Gather this context before working on anything in this domain:
- Identify the license tier: Customer Community, Customer Community Plus, or Partner Community. The license determines whether direct REST/SOAP API access is possible at all — this is a hard platform constraint, not a permission issue.
- Determine user type: Guest (unauthenticated) vs. authenticated external user. Guest users have no named session and cannot authenticate with OAuth. The most common wrong assumption is treating guest user API constraints as a permission gap fixable with permission sets.
- Check FLS on the guest profile: Field-level security on the guest profile is the hard enforcement boundary for Apex running on behalf of guest users. Permission sets grant class access but they do not override guest profile FLS.
- Review external OWDs: External object-wide defaults (OWDs) control what records API responses can return to external users. These are distinct from internal OWDs and must be set explicitly.
- Confirm whether the Apex class runs with or without sharing — and read its
apiVersion: For guest users,with sharingis required, and an explicitwithout sharingon guest-accessible Apex is a critical security violation at every version. What the absence of a keyword means is gated by theapiVersionin the class's.cls-meta.xml, not by the org's release: at 67.0+ (Summer '26) a class with no sharing keyword runswith sharing, and at 66.0 and below it runs without sharing. Canonical table: