Generated by API Evangelist
Written by API Evangelist tooling for Salesforce's API. It is a proposal applied on top of the contract, not a document Salesforce publishes.
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Salesforce Bulk API 2.0 Ingest Jobs API
version: 1.0.0
extends: openapi/salesforce-ingest-jobs-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 5
- target: $.paths['/ingest'].get
update:
x-apievangelist-phrasing:
intent: List bulk ingest jobs in the org
effect: read
questions:
- Which bulk ingest jobs exist in my org?
- Can I list only Bulk API 2.0 ingest jobs and skip the classic ones?
instructions:
- text: List ingest jobs of type {jobType}.
slots:
jobType: query.jobType
- text: List ingest jobs with PK chunking set to {isPkChunkingEnabled}.
slots:
isPkChunkingEnabled: query.isPkChunkingEnabled
- text: Show every ingest job in the org, newest first.
method: generated
generated: '2026-09-26'
- target: $.paths['/ingest'].post
update:
x-apievangelist-phrasing:
intent: Create a Bulk API 2.0 ingest job
effect: write
questions:
- How do I start a Bulk API 2.0 load to upsert contacts?
- Can an ingest job apply a lead or case assignment rule?
instructions:
- text: Create an ingest job to {operation} {object} records.
slots:
operation: requestBody.operation
object: requestBody.object
- text: Create an upsert ingest job on {object} matched by {externalIdFieldName}.
slots:
object: requestBody.object
externalIdFieldName: requestBody.externalIdFieldName
method: generated
generated: '2026-09-26'
- target: $.paths['/ingest/{jobId}'].get
update:
x-apievangelist-phrasing:
intent: Check an ingest job's progress
effect: read
questions:
- How many records failed in my ingest job?
- Is my bulk ingest job complete yet?
instructions:
- text: Check the status of ingest job {jobId}.
slots:
jobId: path.jobId
- text: Show records processed and failed for ingest job {jobId}.
slots:
jobId: path.jobId
method: generated
generated: '2026-09-26'
- target: $.paths['/ingest/{jobId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an aborted ingest job
effect: destructive
questions:
- Can I delete an ingest job that was aborted?
- What happens to an ingest job's data when I delete it?
instructions:
- text: Delete aborted ingest job {jobId}.
slots:
jobId: path.jobId
- text: Remove ingest job {jobId} and its data.
slots:
jobId: path.jobId
method: generated
generated: '2026-09-26'
- target: $.paths['/ingest/{jobId}'].patch
update:
x-apievangelist-phrasing:
intent: Close or abort an ingest job
effect: destructive
questions:
- How do I signal my upload is done so the ingest job starts processing?
- Can I abort an ingest job that's still open?
instructions:
- text: Close ingest job {jobId} so it starts processing.
slots:
jobId: path.jobId
- text: Set ingest job {jobId} to state {state}.
slots:
jobId: path.jobId
state: requestBody.state
method: generated
generated: '2026-09-26'
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.