canonical: https://jentic.com/apis/amazonaws.com/aws-ebs

# AWS Amazon Elastic Block Store

Jentic publishes the only available OpenAPI specification for the Amazon EBS direct APIs, keeping them validated and agent-ready. The EBS direct APIs let backup vendors and applications create EBS snapshots, write data blocks directly into a snapshot, read snapshot blocks, and compute the differences between two snapshots. They are designed for incremental backup and disaster recovery flows that need block-level access without spinning up an EC2 instance to mount a volume. Use them when an agent needs to ingest snapshot data, restore from on-premises backups into the cloud, or efficiently track changed blocks between snapshots.

## For AI agents

Create EBS snapshots, write and read blocks directly, and compare snapshots block-by-block for incremental backup and disaster recovery workflows.

## Scope

Does not handle volume creation, attachment to EC2 instances, or DLM scheduling - use for block-level snapshot read, write, and diff only.

## Capabilities

- Create new EBS snapshots in pending state with StartSnapshot ready to receive block uploads
- Upload data blocks into a pending snapshot via PutSnapshotBlock with SHA-256 checksum verification
- Finalise a snapshot once all blocks are written using CompleteSnapshot with the changed-block count
- Read individual blocks from an existing snapshot with GetSnapshotBlock for restore workflows
- List the blocks present in a snapshot with ListSnapshotBlocks and stream their indexes and tokens
- Compute incremental differences between two snapshots through ListChangedBlocks for efficient transfer

## Use cases

### Incremental Backup of Customer Volumes

An ISV backup product can use ListChangedBlocks between two consecutive snapshots to identify exactly which blocks changed and upload only those blocks to its backup target. The result is an incremental backup that scales with the rate of change rather than total volume size, dramatically reducing transfer time and cost.

Example prompt: Call ListChangedBlocks with FirstSnapshotId and SecondSnapshotId, then GetSnapshotBlock for each ChangedBlock entry to fetch the new bytes.

### Cloud Restore from On-Premises Backup

When restoring from an on-premises backup, an agent can call StartSnapshot to create a pending snapshot, PutSnapshotBlock for each data block from the backup target, and CompleteSnapshot to seal the snapshot. The completed snapshot can then be turned into an EBS volume in EC2 without ever staging the data through an EC2 instance.

Example prompt: Call StartSnapshot with VolumeSize, then PutSnapshotBlock per block with SHA-256 checksum, then CompleteSnapshot with the ChangedBlocksCount once all blocks are written.

### Targeted Block Reads for Forensic Analysis

Forensic and indexing tools can read specific snapshot blocks via GetSnapshotBlock without restoring the entire volume. ListSnapshotBlocks returns the block indexes and tokens, then GetSnapshotBlock pulls only the blocks of interest, keeping data egress and processing bounded.

Example prompt: Call ListSnapshotBlocks for the target snapshot and StartingBlockIndex, then GetSnapshotBlock for each BlockIndex of interest.

### Agent-Driven Snapshot Workflows

An AI agent connected via Jentic can drive a backup or restore workflow by composing the StartSnapshot, PutSnapshotBlock, CompleteSnapshot, and GetSnapshotBlock calls correctly, and reacting to checksum or throttling errors. Jentic returns the matching EBS direct API operation and schema so the agent has structured input contracts and can orchestrate block-level transfers.

Example prompt: Search Jentic for 'create an EBS snapshot from blocks', load StartSnapshot, then iterate PutSnapshotBlock for each block and finish with CompleteSnapshot.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /snapshots | Start a new snapshot in pending state |
| PUT | /snapshots/{snapshotId}/blocks/{blockIndex}#x-amz-Data-Length&x-amz-Checksum&x-amz-Checksum-Algorithm | Upload a block into a snapshot |
| POST | /snapshots/completion/{snapshotId}#x-amz-ChangedBlocksCount | Complete an in-progress snapshot |
| GET | /snapshots/{snapshotId}/blocks/{blockIndex}#blockToken | Read a specific block |
| GET | /snapshots/{snapshotId}/blocks | List blocks in a snapshot |
| GET | /snapshots/{secondSnapshotId}/changedblocks | List changed blocks between two snapshots |

## Key resources

- **Snapshot** — Block-level snapshot of an EBS volume, possibly in pending state.
- **Snapshot Block** — Individual block within a snapshot, identified by index and token.
- **Changed Blocks** — Set of block indexes that differ between two snapshots.

## Why Jentic

- **Setup:** Wiring the Amazon EBS direct APIs by hand means building SigV4 request signing, resolving the regional ebs.{region}.amazonaws.com host, and handling block checksums plus AWS retries yourself. Through Jentic you install once, import the EBS direct APIs from the API Directory, store the AWS access keys once, and your agent calls it.
- **Permission scoping:** The EBS direct APIs put the snapshot id in the URL path (/snapshots/{snapshotId}/blocks/{blockIndex}), so a rule can pin your agent to one snapshot: it can read blocks and list changed blocks for that snapshot and nothing else. You choose the operations it may call, so writing blocks or completing a snapshot is not included unless you add it.
- **Credential handling:** Your AWS access keys for the EBS direct APIs are stored once, encrypted, by your own Jentic One instance and injected at execution time when the request is signed. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'start an EBS snapshot' or 'list changed blocks between snapshots', and Jentic returns the matching EBS direct API operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Amazon Elastic Compute Cloud** — Owns volume creation, attachment, and snapshot management beyond block-level operations.
- **Amazon Data Lifecycle Manager** — Schedules automated snapshots that the EBS direct API can later read or diff.
- **AWS Backup** — Higher-level backup service that wraps EBS snapshots alongside other services.

## FAQ

### Why is there no official OpenAPI spec for Amazon Elastic Block Store?

AWS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Amazon Elastic Block Store via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Amazon EBS direct API use?

The EBS direct APIs use AWS Signature Version 4 (HMAC) signing with an AWS access key ID and secret access key. Through Jentic, those credentials live encrypted in your Jentic One instance and are injected into signed requests at execution time, so the agent never sees the raw secret access key.

### Can I detect which blocks changed between two snapshots?

Yes. Call ListChangedBlocks on the second snapshot with FirstSnapshotId set to the earlier one. The response lists every BlockIndex that differs and includes block tokens for direct fetching via GetSnapshotBlock.

### What are the rate limits for the Amazon EBS direct API?

The EBS direct APIs share standard AWS service quotas, which are managed per account and region rather than published as fixed per-second limits in the spec. PutSnapshotBlock and GetSnapshotBlock have throughput-oriented limits documented in AWS user guides; ThrottlingException responses should trigger backoff.

### How do I write a snapshot from on-prem data through Jentic?

Search Jentic for 'start an EBS snapshot', load StartSnapshot, execute it with VolumeSize, then iterate PutSnapshotBlock for each block with the SHA-256 checksum and finally CompleteSnapshot. Run pip install jentic and use the async pattern.

### Can I attach a snapshot to an EC2 instance with this API?

No. This API works at the snapshot block level only. To create a volume from a completed snapshot or attach it to an instance, use the Amazon EC2 API operations such as CreateVolume and AttachVolume.

### Can I limit what my agent is allowed to do with the Amazon EBS direct API?

Yes. Because you run Jentic One yourself, your own rules decide which EBS operations and AWS credentials the agent may use. The EBS direct APIs put the snapshot id in the URL path, so a rule can pin the agent to a single snapshot and grant only read operations like GetSnapshotBlock and ListChangedBlocks. Write operations such as PutSnapshotBlock and CompleteSnapshot stay off limits unless you explicitly add them.
