# CRD API Documentation > Documentation for the CRD REST API. Learn how to authenticate, discover Crystal Reports schedules, create and manage schedules and packages, run and monitor executions, and build integrations with CRD. ## Guides: Getting Started - [CRD API guides](https://crd-for-crystal.readme.io/docs/getting-started.md): Guides for connecting to CRD, discovering schedules, running executions, and operating the scheduler. - [CRD REST API Overview](https://crd-for-crystal.readme.io/docs/crd-rest-api-overview.md): Learn how to connect to the CRD API, authenticate, and follow a typical schedule execution flow. - [Authentication and Token Management](https://crd-for-crystal.readme.io/docs/authentication-and-token-management.md): Choose a CRD token endpoint and send bearer tokens to protected API operations. - [Quick Start: Execute and Monitor a Schedule](https://crd-for-crystal.readme.io/docs/quick-start-execute-and-monitor-a-schedule.md): Run an existing schedule through CRD and check its execution status. ## Guides: Create and Configure Schedules - [Import a CRD Schedule Definition](https://crd-for-crystal.readme.io/docs/import-a-crd-schedule-definition.md): Import a schedule definition with the CRD API import operation and validate the response. - [Read CRD Package Information](https://crd-for-crystal.readme.io/docs/read-crd-package-information.md): Retrieve package details and included reports from the CRD API. - [Manage Email Destinations](https://crd-for-crystal.readme.io/docs/manage-email-destinations.md): Add, update, or delete email destinations on supported single-report schedules. - [Schedule Lifecycle Reference](https://crd-for-crystal.readme.io/docs/schedule-lifecycle-reference.md): Understand documented CRD operations for existing schedules. - [Discover Folders and Schedules](https://crd-for-crystal.readme.io/docs/discover-folders-and-schedules.md): Find folder contents and resolve schedule identifiers from paths. - [Work with CRD Bursting Schedules](https://crd-for-crystal.readme.io/docs/create-and-maintain-single-report-schedules.md): Use the CRD API operations for retrieving report columns and group values and creating bursting schedules. - [Create and Maintain Single-Report Schedules](https://crd-for-crystal.readme.io/docs/create-and-maintain-single-report-schedules-1.md): Create, inspect, clone, update, enable, disable, and delete single-report schedules. - [Execute Schedules by Time or Event](https://crd-for-crystal.readme.io/docs/execute-schedules-by-time-or-event.md): Run an existing CRD schedule on demand or in response to an event using the documented execution operations. - [Create and Manage CRD Package Schedules](https://crd-for-crystal.readme.io/docs/create-and-manage-crd-package-schedules.md): Create CRD packages and package schedules, configure Crystal Reports and data-driven fields, and retrieve or remove schedules. ## Guides: Operations and Troubleshooting - [Troubleshoot CRD API Integrations](https://crd-for-crystal.readme.io/docs/troubleshoot-crd-api-integrations.md): Check authentication, request shape, identifiers, and service health. - [Operate the API and Scheduler](https://crd-for-crystal.readme.io/docs/operate-the-api-and-scheduler.md): Check CRD service reachability and manage scheduler state. - [Monitor, Recover, and Reconcile Executions](https://crd-for-crystal.readme.io/docs/monitor-recover-and-reconcile-executions.md): Use CRD execution status and history operations to investigate runs. - [Inspect and Control CRD Executions](https://crd-for-crystal.readme.io/docs/inspect-and-control-crd-executions.md): Check execution status and use the queue, cancellation, and termination operations according to their documented behavior. ## Guides: Integration Architecture - [Build a Scheduling Portal Integration](https://crd-for-crystal.readme.io/docs/build-a-scheduling-portal-integration.md): Use CRD endpoints to find existing schedules, start runs, and track results. ## API Reference: CRD Public REST API - Folders - [Get](https://crd-for-crystal.readme.io/reference/folderget.md): Retrieve a folder by its identifier. - [GetSubFolders](https://crd-for-crystal.readme.io/reference/foldergetsubfolders.md): List the child folders for a folder. - [GetSchedules](https://crd-for-crystal.readme.io/reference/foldergetschedules.md): List schedules in a folder. - [GetUniqueIdFromPath](https://crd-for-crystal.readme.io/reference/foldergetuniqueidfrompath.md): Find a schedule identifier using its folder path, schedule name and schedule type. - [GetFolderFromPath](https://crd-for-crystal.readme.io/reference/foldergetfolderfrompath.md): Retrieve a folder using its path. - [CreateFolder](https://crd-for-crystal.readme.io/reference/foldercreatefolder.md): Create a folder under the specified parent folder. - Authentication - [token](https://crd-for-crystal.readme.io/reference/logintoken.md): Authenticate with a CRD user account and return a user token. - [token](https://crd-for-crystal.readme.io/reference/oauth2token.md): Exchange client credentials for a bearer token. - Packages - [Clone](https://crd-for-crystal.readme.io/reference/packageclone.md): Clone a package schedule. - [GetReportsInPackage](https://crd-for-crystal.readme.io/reference/packagegetreportsinpackage.md): List the reports included in a package. - [Create](https://crd-for-crystal.readme.io/reference/packagecreate.md): Create a package schedule. - [Get](https://crd-for-crystal.readme.io/reference/packageget.md): Retrieve a package schedule by its identifier. - Schedule execution - [RenameSchedule](https://crd-for-crystal.readme.io/reference/schedulerenameschedule.md): Rename a schedule. - [ExecuteSchedule](https://crd-for-crystal.readme.io/reference/scheduleexecuteschedule.md): Execute a schedule and wait for its result. - [ExecuteScheduleOnTimeAsync](https://crd-for-crystal.readme.io/reference/scheduleexecutescheduleontimeasync.md): Execute a schedule asynchronously and advance its next run time. - [ExecuteScheduleByEventAsync](https://crd-for-crystal.readme.io/reference/scheduleexecuteschedulebyeventasync.md): Start an asynchronous schedule execution with event context. - [DisableSchedule](https://crd-for-crystal.readme.io/reference/scheduledisableschedule.md): Disable a schedule. - [EnableSchedule](https://crd-for-crystal.readme.io/reference/scheduleenableschedule.md): Enable a schedule. - [ExecuteScheduleAsync](https://crd-for-crystal.readme.io/reference/scheduleexecutescheduleasync.md): Start an asynchronous schedule execution and return its execution identifier. - [GetNumberOfFreeThreads](https://crd-for-crystal.readme.io/reference/schedulegetnumberoffreethreads.md): Return the number of currently available execution threads. - [CancelExecution](https://crd-for-crystal.readme.io/reference/schedulecancelexecution.md): Cancel an execution by execution identifier. - [GetExecutionStatus](https://crd-for-crystal.readme.io/reference/schedulegetexecutionstatus.md): Retrieve the status of an asynchronous execution. - [TerminateSchedule](https://crd-for-crystal.readme.io/reference/scheduleterminateschedule.md): Terminate a running process by process identifier. - [GetExecutionQueue](https://crd-for-crystal.readme.io/reference/schedulegetexecutionqueue.md): List execution status records in the queue. - [importScheduleJSON](https://crd-for-crystal.readme.io/reference/scheduleimportschedulejson.md): Import a compatible schedule definition as JSON. - [GetAllWithFilter](https://crd-for-crystal.readme.io/reference/schedulegetallwithfilter.md): List schedules filtered by their keywords. - Schedule history - [LastRunResult](https://crd-for-crystal.readme.io/reference/scheduleinfolastrunresult.md): Retrieve the most recent run result for a schedule. - [GetFailedSchedules](https://crd-for-crystal.readme.io/reference/scheduleinfogetfailedschedules.md): List recently failed schedules. - Service operations - [Ping](https://crd-for-crystal.readme.io/reference/serviceping.md): Check API service connectivity. - [StopScheduler](https://crd-for-crystal.readme.io/reference/servicestopscheduler.md): Stop the scheduler service. - [StartScheduler](https://crd-for-crystal.readme.io/reference/servicestartscheduler.md): Start the scheduler service. - [IsSchedulerRunning](https://crd-for-crystal.readme.io/reference/serviceisschedulerrunning.md): Check whether the scheduler is running. - [UpdateCollaborationSettings](https://crd-for-crystal.readme.io/reference/serviceupdatecollaborationsettings.md): Update collaboration settings. - System monitoring - [AllDue](https://crd-for-crystal.readme.io/reference/systemmonitoralldue.md): List schedules currently due to run. - [GetCurrentlyExecuting](https://crd-for-crystal.readme.io/reference/systemmonitorgetcurrentlyexecuting.md): List schedules currently executing. - User groups - [Get](https://crd-for-crystal.readme.io/reference/usergroupsget.md): List user groups. - Bursting schedules - [GetReportColumns](https://crd-for-crystal.readme.io/reference/burstingschedulegetreportcolumns.md): List report columns that can be used for bursting. - [GetGroupValues](https://crd-for-crystal.readme.io/reference/burstingschedulegetgroupvalues.md): List values for a report grouping column. - [CreateBurstingSchedule](https://crd-for-crystal.readme.io/reference/burstingschedulecreateburstingschedule.md): Create a bursting schedule. - Package schedules - [Delete](https://crd-for-crystal.readme.io/reference/packagescheduledelete.md): Delete a package schedule. - [Create](https://crd-for-crystal.readme.io/reference/packageschedulecreate.md): Create a package schedule. - [Get](https://crd-for-crystal.readme.io/reference/packagescheduleget.md): Retrieve a package schedule. - [GetAll](https://crd-for-crystal.readme.io/reference/packageschedulegetall.md): Search package schedules. - Single-report schedules - [Clone](https://crd-for-crystal.readme.io/reference/singlescheduleclone.md): Clone a single-report schedule. - [Delete](https://crd-for-crystal.readme.io/reference/singlescheduledelete.md): Delete a single-report schedule. - [CreateSingleReport](https://crd-for-crystal.readme.io/reference/singleschedulecreatesinglereport.md): Create a single-report schedule. - [AddEmailDestination](https://crd-for-crystal.readme.io/reference/singlescheduleaddemaildestination.md): Add an email destination to a schedule. - [DeleteEmailDestination](https://crd-for-crystal.readme.io/reference/singlescheduledeleteemaildestination.md): Delete an email destination from a schedule. - [UpdateEmailDestination](https://crd-for-crystal.readme.io/reference/singlescheduleupdateemaildestination.md): Update an email destination. - [Get](https://crd-for-crystal.readme.io/reference/singlescheduleget.md): Retrieve a single-report schedule. - [GetAll](https://crd-for-crystal.readme.io/reference/singleschedulegetallget.md): Search single-report schedules. - [GetAll](https://crd-for-crystal.readme.io/reference/singleschedulegetallpost.md): Search single-report schedules. - [UpdateParameter](https://crd-for-crystal.readme.io/reference/singlescheduleupdateparameter.md): Update report parameter values for a schedule. - [GetSample](https://crd-for-crystal.readme.io/reference/singleschedulegetsample.md): Return a sample schedule JSON document. ## Recipes - [Check a Schedule's Last Run Result](https://crd-for-crystal.readme.io/recipes/check-a-schedules-last-run-result.md) - [Check CRD API and Scheduler Health](https://crd-for-crystal.readme.io/recipes/check-crd-api-and-scheduler-health.md) - [List the Reports in a CRD Package](https://crd-for-crystal.readme.io/recipes/list-the-reports-in-a-crd-package.md) - [Review the CRD Execution Queue](https://crd-for-crystal.readme.io/recipes/review-the-crd-execution-queue.md) - [Run a CRD Schedule and Check Its Status](https://crd-for-crystal.readme.io/recipes/run-a-crd-schedule-and-check-its-status.md) - [Update Email Recipients on a CRD Schedule](https://crd-for-crystal.readme.io/recipes/update-email-recipients-on-a-crd-schedule.md)