# Salesforce — CRM API: overview

> Canonical URL: https://developers.apideck.com/apis/crm/salesforce/overview

CRM software solutions and enterprise cloud computing from Salesforce, the leader in customer relationship management (CRM) and PaaS.
- Status: live
- Authentication: oauth2

- **difficulty:** moderate
- **apideck credentials note:** The OAuth consent screen shows "Apideck" while testing; use your own External Client App in production.
- **partnership note:** A free, self-service Salesforce Developer account is all you need — no partner program or app review.
- **authentication note:** Authorization Code flow with PKCE.
- **partnership portal name:** Salesforce Developers
- **sandbox url:** https://www.salesforce.com/products/free-trial/developer/
- **partnership url:** https://www.salesforce.com/products/free-trial/developer/
- **apideck credentials available:** true
- **consumer access level:** User with the "API Enabled" permission (System Administrator profile includes it)
- **environment notes:**   - **environment:** Sandbox
  - **description:** Development and testing. A free Developer Edition org is standalone, ships with sample data, and authenticates via login.salesforce.com just like production. A consumer's own Salesforce sandbox (Developer, Developer Pro, Partial Copy or Full Copy of a paid org) authenticates via test.salesforce.com instead — for those the consumer selects Sandbox in the connection's Environment setting. One set of External Client App credentials is configured once in Apideck and used for both hosts — the Environment setting only chooses whether authorization goes through login.salesforce.com or test.salesforce.com.
  - **description:** Live consumer data. The consumer authorizes via OAuth with their own Salesforce login, and the org's instance URL is captured automatically during authorization. To test against a consumer's real configuration rather than sample data, ask them to connect a Salesforce sandbox copy of their org.
  - **environment:** Production
- **difficulty reason:** Edition-Gated API Access
- **webhooks:** Virtual webhooks — contacts, companies, leads, opportunities, activities, notes, pipelines and users (created/updated)
- **important to know:** Starter Suite and the legacy Group and Essentials editions have no API access at all, so consumers on those editions cannot connect until they upgrade. Check your consumers' editions early.
Since Spring '26 (March 2026) Salesforce blocks creation of new Connected Apps by default — new setups use an External Client App. Existing Connected Apps keep working, but migrating one reissues its Consumer Key and Secret, so the credentials stored in Apideck must be updated.
The connecting user's profile decides what the API can see: Salesforce enforces sharing rules and field-level security, so connect with a user whose profile can see the records you need; a narrowly-scoped user returns partial data rather than an error.
Refresh tokens never expire by default, but an org admin can apply an inactivity or fixed-duration refresh-token policy — when they do, affected consumers are dropped and have to authorize again.
Virtual webhooks poll Salesforce on the consumer's behalf, so change detection draws on the same daily API quota as your reads. An org that exhausts the quota returns 403 REQUEST_LIMIT_EXCEEDED for both until usage falls back under the limit.
- **costs:** No Salesforce-side fees to build or test; additional daily API calls can be bought from Salesforce.
- **sandbox note:** Free Developer Edition org: 2 user licenses, 5 MB data / 20 MB file storage; create more orgs as needed.
- **partnership required:** false
- **rate limits:** 100,000 requests/24 hours (Enterprise) plus 1,000 per user license; 25 concurrent long-running requests.
- **supported resource categories:**   - **resources:** companies
contacts
users
  - **name:** Companies & Contacts
  - **name:** Sales Pipeline
  - **resources:** leads
opportunities
pipelines
  - **name:** Activities & Notes
  - **resources:** activities
tasks
notes
  - **resources:** custom-objects
custom-object-schemas
lists
  - **name:** Custom Objects & Lists
- **account type required:** Salesforce edition with API access (Enterprise, Unlimited, Performance or Developer; Professional via paid add-on)
- **sandbox available:** true
- **responsibility matrix:**   - **area:** Create Salesforce Developer Account
  - **customer:** ✓ (or use Apideck credentials)
  - **customer:** ✓ (or use Apideck credentials)
  - **area:** Create External Client App
  - **apideck:** Docs provided
  - **customer:** ✓ (or use Apideck credentials)
  - **area:** Add Credentials to Apideck
  - **area:** Authorize Connection (OAuth)
  - **consumer:** ✓
  - **apideck:** Handles OAuth flow
  - **area:** Build via Unified API
  - **customer:** ✓
  - **apideck:** Maintains connector
  - **area:** Token Refresh
  - **apideck:** ✓ Automatic
  - **apideck:** Logs & alerts
  - **consumer:** ✓ Can revoke anytime
  - **customer:** ✓ Via Dashboard
  - **area:** Monitor Connections

## Supported resources

- **id:** leads
- **name:** Leads
- **downstream id:** leads
- **downstream name:** Leads
- **status:** live
- **custom field support:** true
- **downstream id:** contacts
- **downstream name:** Contacts
- **status:** live
- **name:** Contacts
- **custom field support:** true
- **id:** contacts
- **status:** live
- **downstream name:** Accounts
- **downstream id:** accounts
- **name:** Companies
- **id:** companies
- **custom field support:** true
- **id:** custom-objects
- **downstream id:** custom-objects
- **downstream name:** Custom Objects
- **status:** beta
- **custom field support:** false
- **name:** Custom Objects
- **downstream name:** Custom Object Schemas
- **name:** Custom Object Schemas
- **status:** beta
- **id:** custom-object-schemas
- **custom field support:** false
- **downstream id:** custom-object-schemas
- **id:** opportunities
- **downstream name:** Opportunities
- **downstream id:** opportunities
- **custom field support:** true
- **status:** live
- **name:** Opportunities
- **name:** Pipelines
- **downstream id:** opportunity-stages
- **id:** pipelines
- **downstream name:** Opportunity Stages
- **status:** live
- **custom field support:** false
- **name:** Notes
- **downstream name:** Notes
- **status:** live
- **downstream id:** notes
- **custom field support:** false
- **id:** notes
- **name:** Activities
- **status:** live
- **downstream name:** Events
- **id:** activities
- **downstream id:** events
- **custom field support:** true
- **downstream id:** users
- **downstream name:** Users
- **id:** users
- **status:** live
- **custom field support:** false
- **name:** Users
- **status:** beta
- **name:** Lists
- **id:** lists
- **downstream name:** Lists
- **custom field support:** false
- **downstream id:** lists

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/crm/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/crm/coverage)
