How to Enable API Access in Salesforce: An Enterprise Guide
Learn how to securely enable API access in Salesforce for external applications and AI agents using Permission Sets and API Access Control.

Enabling API access in Salesforce allows external applications and AI agents to read or update Salesforce data through its APIs. To configure it, you generally need to grant the connecting user the "API Enabled" system permission, set up the appropriate authentication method, and approve the connected app if your organization enforces API access control.
However, enabling the API alone doesn't determine which records or fields an integration can access. Those permissions depend on the Salesforce user, their assigned roles and permission sets, and the organization's existing security controls.
In this guide, we look at how to enable Salesforce API access using permission sets, configure connected app policies, troubleshoot missing API permissions, and verify that external applications and AI agents have the access they need without unnecessary privileges.
Key Takeaways
- Salesforce API connectivity depends on both the user’s system permissions and the "Connected App" policy that governs authentication.
- Permission sets are usually safer than changing user profiles because they let you grant API access to one integration user without broadening access for other users.
- “Professional Edition” may require the Web Services API add-on before API access is available, while “Enterprise Edition” commonly includes API access.
- If the "API Enabled" option is missing, check the user’s edition, profile editability, and whether you’re viewing permissions through a permission set instead of a standard profile.
- Engini adds a governed execution layer after Salesforce API access is open, so agents can work across Salesforce and systems of record with scoped permissions and an audit trail.
The Prerequisites for Successful Salesforce API Connectivity
Salesforce API connectivity requires three key pieces to line up before an external application or agent can work reliably:
- A Salesforce edition that supports API access.
- A user with the correct system permissions.
- A connected app and authentication flow that your security policy permits.
But before all that, we recommend starting with the edition check as Salesforce API availability largely depends on it. For example, “Professional Edition” requires the "Web Services API" add-on for API access. “Enterprise Edition”, on the other hand, is one of the editions commonly used for API-based integrations.
And so, that edition check, while trivial, can matter a lot since permissions can't enable a feature your organization doesn't otherwise have. Consider this: if the "Web Services API" add-on is missing in “Professional Edition”, the "API Enabled" checkbox may not appear where you expect it.
Once you’ve confirmed the edition, the next item on the list is establishing integration identity. After all, an external application or AI agent shouldn't connect as a broad human administrator just to bypass a permission error. Instead, we recommend using a dedicated integration user where possible, then give that user only the access needed for the integration.
| Requirement | What to Check | Why It Matters |
|---|---|---|
| Salesforce edition | Confirm API access is included or the "Web Services API" add-on is active. | API permissions depend on edition entitlement. |
| Integration user | Use a dedicated user for the external application or agent. | Activity is easier to audit and restrict. |
| Permission set | Grant "API Enabled" through targeted system permissions. | Access stays closer to "Least Privilege". |
| Connected app | Confirm OAuth settings and app policy. | Authentication must be allowed before API calls work. |
| Object and field access | Verify the user can access the records the agent needs. | API access does not override Salesforce permissions. |
Enabling API Access Through Permission Sets
The cleanest way to enable API access in Salesforce is to assign the integration user a permission set that includes the "API Enabled" system permission. This avoids changing a global user profile and keeps the permission limited to the user that external applications or agents connect as.
Use this path in the Salesforce Lightning Platform setup experience:
- Click the "Gear" icon → "Setup".
- In the "Quick Find" box, enter "Permission Sets".
- Select "Permission Sets" → "New".
- Enter a label, such as "Integration API Access".
- Choose the appropriate license setting for the user, then click "Save".
- In the "Permission Set", select "System Permissions" → "Edit".
- Check "API Enabled", then click "Save".
- Confirm the permission change when Salesforce prompts you.
- Select "Manage Assignments" → "Add Assignments".
- Choose the integration user.
- Select "Next" → "Assign".
Tip: This sequence also helps when standard profile edits are unavailable, too broad, or outside your access model.
Creating the Integration User Profile
A dedicated integration user gives your external application or AI agent a stable Salesforce identity. It also makes login history, API calls, and record changes easier to trace.
A good setup starts with a user profile that matches the minimum baseline access the integration needs. In some organizations, that may start from a standard user style profile. In stricter ones, however, you may need to create a custom profile, then use permission sets to add only the specific permissions required.
For best results, make sure to use this workflow:
- Go to "Setup".
- In the "Quick Find" box, enter "Profiles".
- Review whether an existing custom profile fits the integration user.
- If your governance model requires it, create or clone a custom profile with limited baseline access.
- Create the integration user under "Users".
- Assign the selected custom profile or approved standard profile.
- Assign the API permission set through "Manage Assignments".
- Assign object, field, and record access based on the agent’s actual task scope.
Note: Don't rely on the "API Enabled" option alone. A user can have API access and still fail to read or write a record because Salesforce object permissions, field permissions, sharing rules, validation rules, and business logic still apply.
Activating Apex REST Services
You can enable Apex REST services when the external application or AI agent needs to call custom Apex REST endpoints. With that said, while standard Salesforce REST API access and custom Apex REST endpoint access are related, they aren't the same permission decision.
We recommend using this path when a requirement says to enable API and Apex REST services:
- Go to "Setup".
- In the "Quick Find" box, enter "Permission Sets".
- Open the permission set assigned to the integration user.
- Select "System Permissions" → "Edit".
- Check "Apex REST Services".
- Confirm that "API Enabled" is also checked if the same user needs standard API access.
- Click "Save".
Note: If your agent calls standard Salesforce REST API endpoints, the "API Enabled" permission is the core requirement. If it calls custom Apex endpoints, such as endpoint access built by your development team, Apex REST services may also need to be active.
Configuring API Access Control for Connected Apps
API access has two sides in Salesforce. The user needs the right system permissions, and the connected app needs to be allowed under your organization’s API access control policy.
And this is the second step that often gets missed. An integration user may have "API Enabled" in place, but the app can still fail authentication if the connected app is not permitted.
To avoid this, make sure to follow these steps when dealing with Salesforce Lightning:
- Click the "Gear" icon → "Setup".
- In the "Quick Find" box, enter "Connected Apps".
- Select "Manage Connected Apps".
- Open the connected app used by the external application or agent.
- Review the OAuth configuration and policies.
- Confirm the app uses the correct OAuth Consumer Key.
- Apply the access policy required by your organization.
- Save the connected app policy changes.
Note: If your organization enforces API access control, the Connected App must be approved or allowlisted before it can make API calls. That allowlisting control also works alongside the integration user’s permission set.
If you're configuring OAuth authentication for a new integration, you'll also likely need to locate the application's credentials. Read our guide on finding your Salesforce Consumer Key and Secret to learn about the differences between classic connected apps and external client apps.
Troubleshooting a Missing "API Enabled" Checkbox
If the "API Enabled" checkbox is missing, check the Salesforce edition first, then check whether you’re editing a standard profile instead of a permission set. Also, confirm that your own admin user has the administrative permissions needed to change system permissions within the Salesforce Setup.
A Quick Checklist to Get You Started
- Confirm your Salesforce edition includes API access.
- For “Professional Edition”, confirm the "Web Services API" add-on is active.
- Use a permission set instead of trying to edit a standard profile directly.
- Confirm you have system administrator access or equivalent administrative permissions.
- Check "System Permissions" and not object permissions or app permissions.
- Confirm the selected permission set license is compatible with the integration user.
If the checkbox is unavailable after you confirm the "Permission Set" path, reference the edition check section of this guide before changing profiles.
Wrestling with Standard Profiles
Issues stemming from profile types are not uncommon here, either. This is because standard profiles are not the safest place to solve integration access, and they may not expose the edit path you expect.
If this happens to you, use this troubleshooting path:
- Go to "Setup".
- In the "Quick Find box", enter "Permission Sets".
- Open the permission set intended for the integration user.
- Select "System Permissions" → "Edit".
- Search the permission list for "API Enabled".
- If it is missing, verify edition entitlement and permission set license settings.
- If it appears, check the box and click "Save".
- Return to "Manage Assignments" and confirm the integration user is assigned.
Tip: Avoid solving this by granting global admin access to the connecting user. That may unblock a test call, but it weakens the control model around the Salesforce system of record.
Securing Salesforce API Access Beyond Initial Setup
As you can see, enabling Salesforce API access takes more than checking the "API Enabled" box. The connecting user must also have the appropriate access, the authentication method must be configured correctly, and any applicable connected app policies must allow the connection.
For a secure setup, we recommend using a dedicated integration user, assigning permissions through targeted permission sets, and verify object- and field-level access before enabling production workflows. And if authentication fails, make sure to check the user's API permissions, Salesforce edition, and connected app configuration before expanding their privileges.
Once API access is established, don’t forget to also test the actual operations the integration needs to perform. After all, a successful API login doesn't guarantee that Salesforce will permit a record update or that the request will satisfy validation rules.
And when AI agents need to work across Salesforce and other enterprise applications, managing connectivity and permissions becomes simple with Engini. Through Engini, we provide one managed execution layer for AI agents, helping teams centralize enterprise connectivity, enforce scoped permissions, and monitor actions across connected systems while preserving Salesforce's native access controls.
Agent gateway
Ship agents into systems you can’t afford to break
Agent gateway and workflow automation on one iPaaS core: MCP, SDK, API, or canvas, with secure auth, audit trail and tool permissions built in.
Frequently Asked Questions
How do I enable API access on a Salesforce trial account?
Check the trial edition first. API access depends on the Salesforce edition and active entitlements, so a trial account may not expose the same API options as an organization working in production.
If "API access" is available in the trial, use the same setup pattern as before: create a permission set, open "System Permissions", check "API Enabled", and assign the permission set to the user that the external application or agent connects as.
Does "API Enabled" grant access to both the REST and SOAP API?
Yes, but there’s a catch. The "API Enabled" system permission allows the assigned user to access Salesforce APIs, including standard API access used by REST API and SOAP API clients, as long as the organization’s Salesforce edition and connected app policy allow it.