Newer Version Available
Understanding Bulk API 2.0 Query
Availability
Query jobs in Bulk API 2.0 are available in API version 47.0 and later.
Supported URIs and Methods
This table lists the URIs and methods supported by queries in Bulk API 2.0.
| URI | HTTP Method | Description |
|---|---|---|
| /services/data/vXX.X/jobs/query | POST |
Creates a query job. |
| /services/data/vXX.X/jobs/query | GET |
Gets information about all query jobs in the org. |
| /services/data/vXX.X/jobs/query/queryJobId | GET |
Gets information about one query job. |
| /services/data/vXX.X/jobs/query/queryJobId/results | GET |
Gets the results for a query job. |
| /services/data/vXX.X/jobs/query/queryJobId | PATCH |
Aborts a query job. |
| /services/data/vXX.X/jobs/query/queryJobId | DELETE |
Deletes a query job. |
Chunking Query Jobs
Bulk API 2.0 query jobs enable asynchronous processing of SOQL queries. Instead of manually configuring batches, Bulk API 2.0 query jobs automatically determine the best way to divide your query job into smaller chunks, helping to avoid failures or timeouts. The API automatically handles retries. If you receive a message that the API retried more than 15 times, apply a filter criteria and try again. When you get the results of a query job, the response body is always compressed.
With Bulk API, if you create a batch without PK chunking, then only one batch is created. If you create a batch with PK chunking enabled, batches are broken up based on the number of records in the chunk. This can range from 100,000 to 250,000 records.
Bulk API 2.0 is optimized to chunk large query jobs with the following objects:
- Account
- AccountContactRelation
- AccountTeamMember
- AiVisitSummary
- Asset
- AssignedResource
- B2BMktActivity
- B2BMktProspect
- Campaign
- CampaignMember
- CandidateAnswer
- Case
- CaseArticle
- CaseComment
- CaseRelatedIssue
- ChangeRequest
- ChangeRequestRelatedIssue
- ChangeRequestRelatedItem
- Claim
- ClaimParticipant
- Contact
- ContentDistribution
- ContentDocument
- ContentVersion
- Contract
- ContractLineItem
- ConversationDefinitionEventLog
- ConversationEntry
- ConversationReason
- ConversationReasonExcerpt
- ConversationReasonGroup
- CustomerProperty
- EinsteinAnswerFeedback
- EmailMessage
- EngagementScore
- Entitlement
- Event
- EventRelation
- FeedItem
- Incident
- IncidentRelatedItem
- Individual
- InsurancePolicy
- InsurancePolicyAsset
- InsurancePolicyParticipant
- Lead
- LeadInsight
- LinkedArticle
- LiveChatTranscript
- LoginHistory
- LoyaltyAggrPointExprLedger
- LoyaltyLedger
- LoyaltyMemberCurrency
- LoyaltyMemberTier
- LoyaltyPartnerProduct
- LoyaltyProgramMbrPromotion
- LoyaltyProgramMember
- LoyaltyProgramPartner
- LoyaltyProgramPartnerLedger
- MlRetrainingFeedback
- Note
- ObjectTerritory2Association
- Opportunity
- OpportunityContactRole
- OpportunityHistory
- OpportunityLineItem
- OpportunitySplit
- OpportunityTeamMember
- Order
- OrderItem
- Pricebook2
- PricebookEntry
- Problem
- ProblemIncident
- ProblemRelatedItem
- Product2
- ProductConsumed
- ProductRequired
- QuickText
- Quote
- QuoteLineItem
- ReplyText
- ScoreIntelligence
- ServiceContract
- Task
- TaskRelation
- TermDocumentFrequency
- TransactionJournal
- User
- UserRole
- VoiceCall
- VoiceCallRecording
- Voucher
- WebCart
- WorkloadUnit
- WorkOrder
- WorkOrderLineItem
- WorkPlan
- WorkPlanTemplate
This optimization also includes custom objects, and any Sharing and History tables that support standard objects.
SOQL Considerations
- GROUP BY, ORDER BY, OFFSET, or TYPEOF clauses.
Don’t use ORDER BY, as it disables PKChunking for the query. With PKChunking disabled, the query takes longer to execute, and potentially results in query timeouts. If ORDER BY is used, and you experience query time outs, then remove the ORDER BY clause before any subsequent troubleshooting.
- Aggregate Functions such as COUNT().
- Date functions in GROUP BY clauses. (Date functions in WHERE clauses are supported.)
- Compound address fields or compound geolocation fields. (Instead, query the individual components of compound fields.)
- Parent-to-child relationship queries. (Child-to-parent relationship queries are supported.)