canonical: https://jentic.com/apis/azure.com/azure-data-box-management

# Microsoft Azure DataBoxManagementClient

Jentic publishes the only available OpenAPI specification for DataBoxManagementClient, keeping it validated and agent-ready. The Azure Data Box management API exposes 16 operations across 13 paths to order, track, and manage Data Box jobs that physically ship petabyte-scale data into and out of Azure. Use it to validate shipping addresses and inputs, list available SKUs in a region, place an order, monitor the job through ordering, shipping, processing, and delivery, and download credentials when the device arrives on site.

## For AI agents

Order and track Azure Data Box bulk data-transfer jobs through 16 operations on the Microsoft.DataBox resource provider, including SKU lookup, address validation, job status, and credentials.

## Scope

Does not perform the on-site data copy, manage edge compute, or transfer data online - use for ordering and tracking offline Data Box bulk-transfer jobs only.

## Capabilities

- List available Data Box SKUs in a region with their capacity and supported transfer types
- Validate a shipping address before placing an order to avoid delivery failures
- Validate the full input payload (including address and SKU) for a Data Box job
- Query region-specific configuration such as supported countries and currency
- Place, list, retrieve, and cancel Data Box jobs across resource groups and subscriptions
- Track job status through Ordered, Shipped, Delivered, PickedUp, AtAzureDC, DataCopy, and Completed
- Retrieve unlock credentials needed to mount the Data Box at the source or destination site

## Use cases

### Bulk Data Migration to Azure

Move tens to hundreds of terabytes from on-premises storage into Azure by ordering a Data Box. The flow is: validate address, validate inputs, list SKUs to confirm capacity, place the order, track shipment, copy data on site once delivered, and ship the device back. The management API automates every step except the physical data copy. Total cycle is typically 7-21 days, dominated by transit and copy time.

Example prompt: Validate the shipping address for resource group 'rg-migrate', list SKUs available in westeurope, and place a Data Box order named 'migration-q3' for 80 TB

### Multi-Site Migration Tracking

Run multiple Data Box jobs in parallel for branch offices or partner sites, and track them centrally. Listing jobs at the subscription level returns each job's current state and ETA, so an operations dashboard can show which devices are en route, on site, or back at the Azure datacentre. Cancellation is supported until the job ships.

Example prompt: List all Data Box jobs in subscription /subscriptions/{id}, group them by status, and return the count of jobs in each state

### Validation Before Order Placement

Use the validation endpoints to catch problems early - bad postcodes, unsupported countries, SKUs out of stock, or insufficient capacity. Service_ValidateAddress confirms the address is reachable, Service_ValidateInputs confirms the full payload is acceptable, and Service_RegionConfiguration confirms the destination country and currency. Calling these first prevents failed orders that would otherwise need manual intervention.

Example prompt: Call Service_ValidateAddress for the proposed shipping address, then Service_ValidateInputs with the full Data Box order payload, and only place the order if both return Valid

### AI Agent Migration Coordinator

An AI agent supporting an infrastructure team can orchestrate Data Box migrations through Jentic. The agent searches by intent ('order an azure data box'), Jentic returns the Jobs_Create operation with its schema, and the agent executes the call with managed Azure credentials. The same flow handles status tracking and cancellation, freeing engineers from portal-based order management.

Example prompt: Search Jentic for 'place an Azure Data Box order', load the Jobs_Create schema, validate the address and inputs first, then execute Jobs_Create with the user-supplied parameters

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/jobs | List all Data Box jobs in a subscription |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/availableSkus | List available Data Box SKUs in a region |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateAddress | Validate a shipping address for a Data Box order |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateInputs | Validate the full input payload of a Data Box order |
| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName} | Delete (cancel) a Data Box job |
| GET | /providers/Microsoft.DataBox/operations | List Microsoft.DataBox provider operations |

## Key resources

- **Jobs** — Place, list, retrieve, and cancel Data Box transfer jobs
- **Service** — List available SKUs, validate addresses and inputs, retrieve region configuration
- **Operations** — List Microsoft.DataBox resource provider operations

## Why Jentic

- **Setup:** Wiring Azure Data Box by hand means registering an Azure AD app, handling MSAL bearer tokens against management.azure.com with the user_impersonation scope, and polling the Azure-AsyncOperation header for job creation yourself. Through Jentic you install once, import Data Box Management from the API Directory, store the Azure service principal credential once, and your agent calls it.
- **Permission scoping:** Data Box puts the job name in the URL path (/subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.DataBox/jobs/{jobName}), so a rule can pin your agent to a resource group's jobs. You choose the operations it may call, so a destructive one like Jobs_Delete, which cancels an order, is not included unless you add operations such as Jobs_Create or Service_ValidateAddress that it actually needs.
- **Credential handling:** Your Azure service principal credential is stored once, encrypted, by your own Jentic One instance and injected as a scoped ARM bearer token at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'place an Azure Data Box order' or 'list Data Box jobs', and Jentic returns the matching operation with its input schema so the agent validates the address and places the order without learning the 16 paths under Microsoft.DataBox.

## Related APIs

- **Data Box Edge Management** — Persistent edge compute device versus a one-time bulk transfer Data Box job.
- **Storage Management** — Provision the destination storage account that a Data Box copies data into.
- **Storage Import Export** — BYOD-disk import/export service for smaller transfers than a Data Box.

## FAQ

### Why is there no official OpenAPI spec for DataBoxManagementClient?

Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call DataBoxManagementClient 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 Data Box management API use?

It uses Azure Active Directory OAuth 2.0 against https://management.azure.com/ with the user_impersonation scope. The caller needs Contributor or a custom role with Microsoft.DataBox/* permissions on the resource group. Jentic stores service principal credentials encrypted and issues short-lived bearer tokens at execution time.

### Can I cancel a Data Box order through this API?

Yes. Send DELETE to /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.DataBox/jobs/{jobName} while the order is still cancellable (typically before it ships). Once the device is in transit cancellation is no longer permitted by the service.

### What are the rate limits for the Data Box management API?

Azure Resource Manager applies subscription-level read and write throttling (around 1,200 requests per hour). Long-running operations such as job creation return 202 Accepted with an Azure-AsyncOperation header that you poll for completion.

### How do I order a Data Box through Jentic?

Run pip install jentic and search for 'place an azure data box order'. Jentic returns the Jobs_Create operation; load its schema and execute it after first validating the address with Service_ValidateAddress and the full payload with Service_ValidateInputs.

### Does this API copy my data onto the device?

No. The API orchestrates ordering, status, and credentials only. The actual data copy happens on site after the device is delivered, typically using SMB or NFS to mount the device and standard file copy or robocopy.

### Can I limit what my agent is allowed to do with the Azure Data Box Management API?

Yes. Because you run Jentic One yourself, your own rules decide which Data Box operations the agent may call, so you can allow read-only calls like listing jobs or Service_ValidateAddress while withholding a destructive one such as Jobs_Delete that cancels an order. Since the job name sits in the URL path under /subscriptions/{id}/resourceGroups/{rg}/providers/Microsoft.DataBox/jobs/{jobName}, a rule can pin the agent to a single resource group's jobs. Your Azure service principal credential is stored encrypted by your own instance and injected as a scoped bearer token at execution time, never entering the agent's prompt or logs.
