> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mage.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Programmatically create multiple pipeline runs to backfill a pipeline.

### Backfill object

<ResponseExample>
  ```json Response theme={"system"}
  {
    "block_uuid": null,
    "completed_at": null,
    "created_at": "2023-03-23 18:27:58.848959+00:00",
    "end_datetime": "2023-03-05 00:00:00+00:00",
    "failed_at": null,
    "id": 9,
    "interval_type": "hour",
    "interval_units": 4,
    "metrics": null,
    "name": "sparkling glitter",
    "pipeline_schedule_id": null,
    "pipeline_uuid": "example_pipeline",
    "start_datetime": "2023-03-01 00:00:00+00:00",
    "started_at": null,
    "status": null,
    "total_run_count": 25,
    "updated_at": "2023-03-23 18:28:22.379725+00:00",
    "variables": null
  }
  ```
</ResponseExample>

<ResponseField name="block_uuid" type="string">
  If the backfill uses custom code to generate the pipeline runs, this block UUID contains the code
  that will be used.
</ResponseField>

<ResponseField name="completed_at" type="datetime">
  Date and time the backfill finished running successfully.
</ResponseField>

<ResponseField name="created_at" type="datetime" required>
  Date and time the record was created.
</ResponseField>

<ResponseField name="end_datetime" type="datetime">
  The date and time the backfill should stop on.
</ResponseField>

<ResponseField name="failed_at" type="datetime">
  Date and time the backfill failed.
</ResponseField>

<ResponseField name="id" type="integer" required>
  Unique ID for the record.
</ResponseField>

<ResponseField name="interval_type" type="string">
  `minute`, `hour`, `day`, `week`, `month`, `year`
</ResponseField>

<ResponseField name="interval_units" type="integer">
  The number of `interval_type` to use in between each pipeline run that the backfill creates.

  For example, if `interval_type` is `day` and `interval_units` is 3, then the backfill will create
  pipeline runs spanning 3 day increments between the `start_datetime` and `end_datetime`.
</ResponseField>

<ResponseField name="metrics" type="object">
  Various metrics related to the pipeline run; e.g. number of rows processed in a
  data integration pipeline sync.
</ResponseField>

<ResponseField name="name" type="string" required>
  Name of the record.
</ResponseField>

<ResponseField name="pipeline_scheduled_id" type="integer">
  Pipeline schedule that this record belongs to.
</ResponseField>

<ResponseField name="pipeline_uuid" type="string" required>
  Pipeline that this record belongs to.
</ResponseField>

<ResponseField name="start_datetime" type="datetime">
  The date and time the backfill should start on.
</ResponseField>

<ResponseField name="started_at" type="datetime">
  Date and time the backfill started running.
</ResponseField>

<ResponseField name="status" type="string" required>
  `initial`, `running`, `completed`, `failed`, `cancelled`
</ResponseField>

<ResponseField name="total_run_count" type="integer">
  Number of pipeline runs that will be created for this backfill.
</ResponseField>

<ResponseField name="updated_at" type="datetime" required>
  Date and time the record was last updated.
</ResponseField>

<ResponseField name="variables" type="object">
  Object containing variables for the pipeline that is being overwritten by this backfill.

  <Expandable title="properties" defaultOpen="true">
    <ResponseField name="[key]" type="string">
      The property name is user defined.
    </ResponseField>
  </Expandable>
</ResponseField>
