# CRM Analytics REST API jobs, schedules and history

*CRM Analytics and Einstein Discovery Consultant Study Guide · Admin/Configuration · Last updated November 3, 2026 · https://www.certifyforce.com/study-guide/crm-analytics-and-einstein-discovery-consultant/admin-configuration/crm-analytics-rest-api-jobs-schedules-and-history*

What the CRM Analytics REST API can do and which resource and verb fit a task: starting and stopping dataflow and recipe jobs, syncing connections, schedule request bodies, and listing, labelling and restoring asset versions with the History API, within the API call limits.

- Certification: Salesforce CRM Analytics and Einstein Discovery Consultant
- Exam section: Admin/Configuration
- Study guide: https://www.certifyforce.com/study-guide/crm-analytics-and-einstein-discovery-consultant

**Official exam objective:**

> Given a situation, demonstrate knowledge of what can be accomplished with the CRM Analytics API.

## What the exam expects

- Recognise which tasks the CRM Analytics REST API supports (queries, datasets, dashboards, templates, XMD, dependencies, job nodes, runs and schedules) and which belong to Setup or user administration.
- Pick the resource and verb that start or stop a dataflow or recipe job, or run a data sync.
- Read a schedule request body and say when it runs, and know which assets accept an event-based schedule.
- Use the History API to list, label, preview and restore asset versions, and explain its retention and deletion limits.
- Diagnose failures caused by the API call limits.

Key terms: **dataflow job** (one run of a dataflow or recipe, started through /wave/dataflowjobs); **targetDataflowId** (the ID used to start a recipe as a dataflow job); **assetId** (the dataflow, recipe or data sync a schedule applies to); **history record** (a saved version of a dashboard, lens, recipe or dataflow); **AnalyticsMaxHistories** (org value that raises version retention).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| API call limits | 10,000 calls per user per hour; 100 concurrent calls per org | [CRM Analytics Limits](https://help.salesforce.com/s/articleView?id=analytics.bi_limits.htm&language=en_US&type=5) |
| Start a recipe | POST /wave/dataflowjobs with its targetDataflowId as dataflowId | [Run, Schedule, and Sync](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_run_schedule_sync_data.htm) |
| Stop a job | PATCH /wave/dataflowjobs/{dataflowjobId} with command stop | [Run, Schedule, and Sync](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_run_schedule_sync_data.htm) |
| Run a data sync | POST an empty body to /wave/dataConnectors/{connectorId}/ingest | [Run, Schedule, and Sync](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_run_schedule_sync_data.htm) |
| Schedule resource | PUT or DELETE /wave/asset/{assetId}/schedule | [Run, Schedule, and Sync](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_run_schedule_sync_data.htm) |
| Event-based schedules | Dataflows and recipes only; not data syncs or Data Connections | [Run, Schedule, and Sync](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_run_schedule_sync_data.htm) |
| Versions kept | 20 per asset: 10 tagged, 10 untagged; raise with AnalyticsMaxHistories | [History API](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_asset_history.htm) |
| Deleting an asset | Deletes all its history; no undelete | [History API](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_asset_history.htm) |
| Not backed up | Dataset XMD versions | [History API](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_asset_history.htm) |
| Template and XMD tasks | Create, validate and update templates; access XMD | [REST API Overview](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_rest_overview.htm) |

## Check yourself

- When does listing a job's nodes return an empty collection?
- Why should a long-lived integration move off very old API versions?
- Which CLI command lists a dataflow's saved versions?
- What does a successful PUT to the schedule resource return?

## Sources

- [CRM Analytics REST API Overview](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_rest_overview.htm)
- [Run, Schedule, and Sync CRM Analytics Data with REST APIs](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_run_schedule_sync_data.htm)
- [Backup and Restore Previous Versions of CRM Analytics Assets with History API](https://developer.salesforce.com/docs/atlas.en-us.bi_dev_guide_rest.meta/bi_dev_guide_rest/bi_asset_history.htm)
- [CRM Analytics Limits](https://help.salesforce.com/s/articleView?id=analytics.bi_limits.htm&language=en_US&type=5)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 13 linked practice questions, and unlimited timed mock exams are included with the CRM Analytics and Einstein Discovery Consultant pack (USD $19): https://www.certifyforce.com/practice-exams
