> This page is for API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.eon.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.eon.io/_mcp/server.

# List Backup Jobs

POST https://%7Baccount-domain%7D.console.eon.io/api/v1/projects/{projectId}/backup-jobs
Content-Type: application/json

Retrieves a list of backup jobs for the given project.

Reference: https://docs.eon.io/api/api-reference/jobs/backup-jobs/list-backup-jobs

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `projectId` (string, required) — ID of the project whose restore jobs you want to retrieve. You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.

### Query parameters

- `pageToken` (string, optional) — Cursor that points to the first record of the next page of results. Get this value from the previous response. To preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.
- `pageSize` (integer, optional, default: 50) — Maximum number of items to return in the response.

### Body (application/json)

This endpoint expects a ListBackupJobsRequest.

- `filters` (BackupJobsFilterConditions, optional)
- `sorts` (list of SortBackupJobBy, optional)

## Response

### 200

Retrieved backup jobs.

- `jobs` (list of BackupJob, required) — List of retrieved backup jobs.
- `totalCount` (integer, required) — Total number of backup jobs that matched the filter options.
- `nextToken` (string, optional) — Cursor that points to the first record of the next page of results. Pass this value in the next request.

## Types

### BackupJobsFilterConditions

- `jobId` (JobIdFilters, optional, nullable) — Filters for backup job ID.
- `snapshotId` (SnapshotIdFilters, optional) — Filters for the Eon snapshot ID.
- `status` (JobStatusFilters, optional) — Filters for the job status.
- `providerResourceId` (ResourceIdFilters, optional) — Filters for the cloud-provider-assigned resource ID.
- `backupType` (BackupJobTypeFilters, optional) — Filters for the backup job type.
- `startTime` (StartTimeDateFilters, optional) — Filters for the backup job start time.
- `endTime` (EndTimeDateFilters, optional) — Filters for the backup job end time.

### SortBackupJobBy

List of sorting options. Sorting is applied in the order passed in the list.

- `field` (enum, required) — Field to sort by.
  - Allowed values: `createdTime`, `startTime`, `endTime`
- `order` (enum, required) — Sort order. Use `ASC` for ascending order and `DESC` for descending order.
  - Allowed values: `ASC`, `DESC`

### BackupJob

- `jobExecutionDetails` (JobExecutionDetails, required) — Information about the backup job.
- `backupType` (enum, required) — Type of backup. Value represents the cloud provider, resource type, and backup method.
  - Allowed values: `BACKUP_JOB_TYPE_UNSPECIFIED`, `AWS_EC2_BACKUP`, `AWS_EC2_SNAPSHOT_CONVERSION`, `AWS_RDS_BACKUP`, `AWS_S3_BACKUP`, `AWS_FSX_BACKUP`, `AWS_EFS_BACKUP`, `AWS_DYNAMO_DB_BACKUP`, `AWS_DYNAMO_DB_BACKUP_FULL`, `AWS_DYNAMO_DB_BACKUP_FULL_EXPORT`, `AWS_EKS_NAMESPACE_BACKUP`, `AZURE_STORAGE_ACCOUNT_BACKUP`, `AZURE_VM_BACKUP`, `AZURE_SQL_DATABASE_BACKUP`, `AZURE_SQL_MANAGED_INSTANCE_BACKUP`, `AZURE_SQL_VIRTUAL_MACHINE_BACKUP`, `AZURE_SQL_VIRTUAL_MACHINE_BACKUP_FULL`, `AZURE_POSTGRESQL_BACKUP`, `AZURE_MYSQL_BACKUP`, `GCP_COMPUTE_ENGINE_INSTANCE_BACKUP`, `GCP_CLOUD_STORAGE_BACKUP`, `GCP_CLOUD_SQL_BACKUP`, `GCP_BIGQUERY_BACKUP`, `ATLAS_MONGODB_CLUSTER_BACKUP`, `ATLAS_MONGODB_CLUSTER_BACKUP_FULL`
- `resourceDetails` (ResourceDetails, optional) — Information about the resource. Represents the resource's state at the time of backup.
- `snapshotDetails` (JobSnapshotDetails, optional) — Information about the snapshot created by the backup job. Returned only for completed jobs.
- `vault` (BackupJobVault, optional, nullable) — Information about the vault the snapshot is being saved to.

### JobIdFilters

- `in` (list of string, optional) — Matches if any string in this list equals `jobId`.
- `notIn` (list of string, optional) — Matches if no string in this list equals `jobId`.

### SnapshotIdFilters

- `in` (list of string, optional) — Matches if any string in this list equals `snapshotId`.
- `notIn` (list of string, optional) — Matches if no string in this list equals `snapshotId`.

### JobStatusFilters

- `in` (list of enum, optional)
  - Allowed values: `JOB_UNSPECIFIED`, `JOB_PENDING`, `JOB_RUNNING`, `JOB_COMPLETED`, `JOB_FAILED`, `JOB_PARTIAL`, `JOB_CANCELED`, `JOB_REJECTED`, `JOB_SKIPPED`
- `notIn` (list of enum, optional)
  - Allowed values: `JOB_UNSPECIFIED`, `JOB_PENDING`, `JOB_RUNNING`, `JOB_COMPLETED`, `JOB_FAILED`, `JOB_PARTIAL`, `JOB_CANCELED`, `JOB_REJECTED`, `JOB_SKIPPED`

### ResourceIdFilters

- `in` (list of string, optional) — Matches if any string in this list equals `providerResourceId`.
- `notIn` (list of string, optional) — Matches if no string in this list equals `providerResourceId`.

### BackupJobTypeFilters

- `in` (list of enum, optional) — Matches if any item in this list equals `backupType`.
  - Allowed values: `BACKUP_JOB_TYPE_UNSPECIFIED`, `AWS_EC2_BACKUP`, `AWS_EC2_SNAPSHOT_CONVERSION`, `AWS_RDS_BACKUP`, `AWS_S3_BACKUP`, `AWS_FSX_BACKUP`, `AWS_EFS_BACKUP`, `AWS_DYNAMO_DB_BACKUP`, `AWS_DYNAMO_DB_BACKUP_FULL`, `AWS_DYNAMO_DB_BACKUP_FULL_EXPORT`, `AWS_EKS_NAMESPACE_BACKUP`, `AZURE_STORAGE_ACCOUNT_BACKUP`, `AZURE_VM_BACKUP`, `AZURE_SQL_DATABASE_BACKUP`, `AZURE_SQL_MANAGED_INSTANCE_BACKUP`, `AZURE_SQL_VIRTUAL_MACHINE_BACKUP`, `AZURE_SQL_VIRTUAL_MACHINE_BACKUP_FULL`, `AZURE_POSTGRESQL_BACKUP`, `AZURE_MYSQL_BACKUP`, `GCP_COMPUTE_ENGINE_INSTANCE_BACKUP`, `GCP_CLOUD_STORAGE_BACKUP`, `GCP_CLOUD_SQL_BACKUP`, `GCP_BIGQUERY_BACKUP`, `ATLAS_MONGODB_CLUSTER_BACKUP`, `ATLAS_MONGODB_CLUSTER_BACKUP_FULL`
- `notIn` (list of enum, optional) — Matches if no item in this list equals `backupType`.
  - Allowed values: `BACKUP_JOB_TYPE_UNSPECIFIED`, `AWS_EC2_BACKUP`, `AWS_EC2_SNAPSHOT_CONVERSION`, `AWS_RDS_BACKUP`, `AWS_S3_BACKUP`, `AWS_FSX_BACKUP`, `AWS_EFS_BACKUP`, `AWS_DYNAMO_DB_BACKUP`, `AWS_DYNAMO_DB_BACKUP_FULL`, `AWS_DYNAMO_DB_BACKUP_FULL_EXPORT`, `AWS_EKS_NAMESPACE_BACKUP`, `AZURE_STORAGE_ACCOUNT_BACKUP`, `AZURE_VM_BACKUP`, `AZURE_SQL_DATABASE_BACKUP`, `AZURE_SQL_MANAGED_INSTANCE_BACKUP`, `AZURE_SQL_VIRTUAL_MACHINE_BACKUP`, `AZURE_SQL_VIRTUAL_MACHINE_BACKUP_FULL`, `AZURE_POSTGRESQL_BACKUP`, `AZURE_MYSQL_BACKUP`, `GCP_COMPUTE_ENGINE_INSTANCE_BACKUP`, `GCP_CLOUD_STORAGE_BACKUP`, `GCP_CLOUD_SQL_BACKUP`, `GCP_BIGQUERY_BACKUP`, `ATLAS_MONGODB_CLUSTER_BACKUP`, `ATLAS_MONGODB_CLUSTER_BACKUP_FULL`

### StartTimeDateFilters

- `startDate` (string, optional) — Matches if `startTime` is on or later than this date. Must be in ISO 8601 YYYY-MM-DD format.
- `endDate` (string, optional) — Matches if `startTime` is on or earlier than this date. Must be in ISO 8601 YYYY-MM-DD format.

### EndTimeDateFilters

- `startDate` (string, optional) — Matches if `endTime` is on or later than this date. Must be in ISO 8601 YYYY-MM-DD format.
- `endDate` (string, optional) — Matches if `endTime` is on or earlier than this date. Must be in ISO 8601 YYYY-MM-DD format.

### JobExecutionDetails

- `jobId` (string, required) — Job ID.
- `status` (enum, required) — Job status. `JOB_UNSPECIFIED` is supported only in responses.
  - Allowed values: `JOB_UNSPECIFIED`, `JOB_PENDING`, `JOB_RUNNING`, `JOB_COMPLETED`, `JOB_FAILED`, `JOB_PARTIAL`, `JOB_CANCELED`, `JOB_REJECTED`, `JOB_SKIPPED`
- `createdTime` (datetime, required) — Date and time the job was created.
- `expectedStartTime` (datetime, optional, nullable) — Date and time the job is expected to start. Returned only for pending jobs.
- `startTime` (datetime, optional, nullable) — Date and time the job started.
- `endTime` (datetime, optional, nullable) — Date and time the job finished.
- `durationSeconds` (long, optional, nullable) — How long the job took, in seconds.
- `errorCode` (enum, optional) — Code indicating the type of error.
  - Allowed values: `INTERNAL_JOB_ERROR`, `JOB_CANCELED_ERROR`, `CLOUD_OPERATION_FAILED`, `FAILED_TO_GET_RESOURCE_INFORMATION`, `RESOURCE_IS_TERMINATED`, `INVALID_RESOURCE_STATE`, `INVALID_RESOURCE_CONFIGURATION`, `RESOURCE_CONFLICT`, `UNSUPPORTED_OPERATION_ON_RESOURCE`, `FAILED_TO_CREATE_RESOURCE`, `FAILED_TO_START_RESOURCE`, `FAILED_TO_STOP_RESOURCE`, `FAILED_TO_GET_STORAGE_INFORMATION`, `FAILED_TO_CREATE_STORAGE`, `FAILED_TO_DELETE_STORAGE`, `FAILED_TO_ATTACH_STORAGE`, `FAILED_TO_DETACH_STORAGE`, `FAILED_TO_CREATE_IMAGE`, `FAILED_TO_GET_SNAPSHOT_INFORMATION`, `FAILED_TO_TAKE_SNAPSHOT`, `FAILED_TO_USE_SNAPSHOT`, `FAILED_TO_DELETE_SNAPSHOT`, `SNAPSHOT_QUOTA_EXCEEDED`, `RESOURCE_USAGE_QUOTA_EXCEEDED`, `AUTHENTICATION_FAILURE`, `INVALID_ACCOUNT_CONFIGURATION`, `INVALID_VAULT_CONFIGURATION`, `INVALID_INPUT_PARAMETERS`, `TOO_MANY_REQUESTS`, `BACKUP_CONFLICT`, `CLASSIFICATION_CONFLICT`, `FAILED_TO_RUN_QUERY`, `OPERATION_DENIED_BY_CONFIGURATION`, `INSUFFICIENT_ENCRYPTION_PERMISSIONS`
- `statusMessage` (string, optional) — Message that gives additional details about the job status, if applicable.

### ResourceDetails

- `id` (string, required) — Eon-assigned resource ID.
- `providerResourceId` (string, required) — Cloud-provider-assigned resource ID.
- `resourceName` (string, required) — Resource display name.
- `resourceType` (enum, required) — Resource type identifier combining cloud provider and service type. `RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS_EC2`, `AWS_RDS`, `AWS_S3`, `AWS_EFS`, `AWS_FSX`, `AWS_EKS_NAMESPACE`, `AWS_DYNAMO_DB`, `AZURE_VIRTUAL_MACHINE`, `AZURE_FILE_SHARE`, `AZURE_STORAGE_ACCOUNT`, `AZURE_DISK`, `AZURE_SQL_DATABASE`, `AZURE_SQL_MANAGED_INSTANCE`, `AZURE_SQL_VIRTUAL_MACHINE`, `AZURE_MYSQL`, `AZURE_POSTGRESQL`, `AZURE_COSMOSDB_MONGODB`, `AZURE_COSMOSDB_NOSQL`, `ATLAS_MONGODB_CLUSTER`, `GCP_COMPUTE_ENGINE_INSTANCE`, `GCP_CLOUD_SQL_INSTANCE`, `GCP_CLOUD_STORAGE_BUCKET`, `RESOURCE_TYPE_UNSPECIFIED`
- `providerAccountId` (string, required) — Cloud-provider-assigned account ID.
- `cloudProvider` (enum, required) — Cloud provider. `PROVIDER_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS`, `AZURE`, `GCP`, `MONGO_ATLAS`, `PROVIDER_UNSPECIFIED`
- `region` (string, required) — Region the resource is hosted in.
- `sourceStorageSizeBytes` (long, required) — Total storage size at the source, in bytes.

### JobSnapshotDetails

Eon snapshot.

- `pointInTime` (datetime, required) — Date and time of the resource that's preserved by the snapshot.
- `id` (string, optional) — Snapshot ID.
- `expirationTime` (datetime, optional) — Date and time the snapshot's retention is expected to expire, after which it's marked for deletion.

### BackupJobVault

Information about the vault the snapshot is being saved to.

### BackupVault

- `id` (string, required) — Vault ID.
- `vaultAccountId` (string, required) — Eon-assigned ID of the vault account.
- `providerAccountId` (string, required) — Cloud provider-assigned ID of the vault account.
- `name` (string, required) — Vault display name.
- `region` (string, required) — Region where the vault is located.
- `isManagedByEon` (boolean, required) — Whether the vault is in an Eon-managed vault account.
- `vaultAttributes` (VaultProviderAttributes, required) — Cloud-provider-specific vault attributes.

### VaultProviderAttributes

Cloud-provider-specific vault attributes.

- `cloudProvider` (enum, required) — Cloud provider. `PROVIDER_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS`, `AZURE`, `GCP`, `MONGO_ATLAS`, `PROVIDER_UNSPECIFIED`
- `aws` (AwsVaultConfig, optional) — AWS-specific vault configuration.

### AwsVaultConfig

AWS-specific vault configuration.

- `encryptionKey` (string, optional) — ARN of the KMS key used for encryption. Omitted if the key is managed by Eon.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "jobs": [
    {
      "jobExecutionDetails": {
        "jobId": "2cfe604d-1fc3-5db2-9f4c-2044f08e9411",
        "status": "JOB_PENDING",
        "createdTime": "2025-06-12T20:18:35.073285Z",
        "expectedStartTime": "2025-06-12T20:38:35.073285Z",
        "startTime": "2025-06-12T20:28:35.073285Z",
        "endTime": "2025-06-12T20:50:53.130436Z",
        "durationSeconds": 1338,
        "errorCode": "INVALID_RESOURCE_STATE",
        "statusMessage": "string"
      },
      "backupType": "AWS_EC2_BACKUP",
      "resourceDetails": {
        "id": "d38906a7-ef8e-50f5-868e-2109ab881b15",
        "providerResourceId": "db-IPQ7PQ3Q7UMA2LIGOOSUV3B5XU",
        "resourceName": "customers db",
        "resourceType": "AWS_EC2",
        "providerAccountId": "123456789012",
        "cloudProvider": "AWS",
        "region": "eu-central-1",
        "sourceStorageSizeBytes": 561566973952
      },
      "snapshotDetails": {
        "pointInTime": "2024-10-29T23:01:30Z",
        "id": "67e0447a-10a4-5cde-8fc2-2a8cac051e16",
        "expirationTime": "2025-01-20T09:40:26Z"
      },
      "vault": {
        "id": "37732835-d768-5990-ba93-a7c2d2e6d754",
        "isManagedByEon": true,
        "name": "AWS US East 1",
        "providerAccountId": "123412341234",
        "region": "us-east-1",
        "vaultAccountId": "1ee34dc5-0a7c-4e56-a820-917371e05c8d",
        "vaultAttributes": {
          "aws": {
            "encryptionKey": "arn:aws:kms:us-east-1:123456789012:key/4692190d-ae52-56fe-9937-6aa2c4e3df62"
          },
          "cloudProvider": "AWS"
        }
      }
    }
  ],
  "totalCount": 2347,
  "nextToken": "Y2NiMGYyZmMtYjYyZi00OTc5LTgzNjQtYmQ2YjEyYzdjZTNifDE="
}
```

**SDK Code**

```python
import requests

url = "https://{account-domain}.console.eon.io/api/v1/projects/6b3ea428-f6a4-5bb5-8fb2-e4d5d2d920ce/backup-jobs"

querystring = {"pageSize":"10","pageToken":"Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE="}

payload = {}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://{account-domain}.console.eon.io/api/v1/projects/6b3ea428-f6a4-5bb5-8fb2-e4d5d2d920ce/backup-jobs?pageSize=10&pageToken=Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE%3D';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://{account-domain}.console.eon.io/api/v1/projects/6b3ea428-f6a4-5bb5-8fb2-e4d5d2d920ce/backup-jobs?pageSize=10&pageToken=Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE%3D")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```