canonical: https://jentic.com/apis/azure.com/azure-sql-database-backup-long-term-retention-poli

# Microsoft Azure Azure SQL Database Backup Long Term Retention Policy

Jentic publishes the only available OpenAPI specification for Azure SQL Database Backup Long Term Retention Policy, keeping it validated and agent-ready. The API reads and updates the long-term retention policy applied to a single Azure SQL database, the policy that pins backups beyond the default short-term retention window. It exposes 3 endpoints under Microsoft.Sql for listing the policy on a database, getting a named policy, and creating or updating one.

## For AI agents

Configure long-term backup retention on a specific Azure SQL database so an agent can apply or update LTR policies that pin database backups beyond the default retention window.

## Scope

Does not handle short-term backup, point-in-time restore, or vault management - use for reading and updating long-term retention policies on Azure SQL databases only.

## Capabilities

- Read the long-term retention policy currently applied to an Azure SQL database
- Create or update the long-term retention policy with a recoveryServicesBackupPolicyResourceId
- List the backup long-term retention policies attached to a single database
- Wire LTR policies into infrastructure-as-code so retention is provisioned with the database
- Audit which Azure SQL databases have LTR enabled across a subscription

## Use cases

### Apply LTR Policy as Part of Database Provisioning

After creating an Azure SQL database, attach a long-term retention policy by PUTting to /backupLongTermRetentionPolicies/{backupLongTermRetentionPolicyName} with the recoveryServicesBackupPolicyResourceId of an existing Recovery Services vault policy. This pins backups for years rather than the default 7-35 day short-term window, satisfying compliance regimes that mandate multi-year retention. The single API call is the standard way to apply LTR in IaC pipelines.

Example prompt: PUT a backup long-term retention policy on database 'orders-db' under server 'prod-sql-eus' referencing the recovery services backup policy id 'arm-id-of-vault-policy'

### Audit LTR Coverage Across a Subscription

Walk the SQL servers and databases in a subscription, GET the LTR policy on each, and flag any database whose policy is missing or points at a deprecated vault. The list endpoint returns the policies attached to a single database, and an aggregated audit identifies coverage gaps before an external compliance review. Pair with PUT to remediate gaps in the same automation pass.

Example prompt: List the LTR policies for every database under server 'prod-sql-eus' and emit a report flagging any database without a configured policy

### Re-point LTR to a New Recovery Services Vault Policy

When a Recovery Services vault retention policy is replaced, update each database's LTR policy to reference the new id so retention continues uninterrupted. PUT on /backupLongTermRetentionPolicies/{name} with the new recoveryServicesBackupPolicyResourceId atomically swaps the link without losing prior backups. This pattern supports vault consolidation projects and policy rationalisation across business units.

Example prompt: Update the LTR policy on database 'orders-db' to reference the new recovery services backup policy id 'arm-id-of-new-vault-policy'

### Agent-Driven LTR Compliance via Jentic

An AI agent uses Jentic to enforce LTR coverage policy: enumerating databases, reading their LTR policies, and applying a default policy where coverage is missing. The agent searches Jentic for 'list azure sql ltr policies on a database', loads the schema, and chains the response into PUT operations where required. Azure AD bearer tokens are sourced from your Jentic One instance per call.

Example prompt: Search Jentic for 'list azure sql ltr policies on a database', list policies on every database under server 'prod-sql-eus', and PUT the default LTR policy on any that lack one

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupLongTermRetentionPolicies/{backupLongTermRetentionPolicyName} | Get a long-term retention policy on a database |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupLongTermRetentionPolicies/{backupLongTermRetentionPolicyName} | Create or update a long-term retention policy |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupLongTermRetentionPolicies | List long-term retention policies on a database |

## Key resources

- **BackupLongTermRetentionPolicies** — Read, create, update, and list long-term backup retention policies on individual Azure SQL databases.

## Why Jentic

- **Setup:** Wiring the Azure SQL long-term retention policy API by hand means registering an Azure AD app, acquiring bearer tokens for https://management.azure.com/, and handling ARM throttling and error responses against the Microsoft.Sql provider yourself. Through Jentic you install once, import Azure SQL Database Backup Long Term Retention Policy from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** The database id travels in the URL path (/servers/{serverName}/databases/{databaseName}/backupLongTermRetentionPolicies/...), so a rule can pin your agent to reading the retention policy on one database. You choose the operations it may call, so the create-or-update that changes a database's long-term retention policy is not included unless you add it.
- **Credential handling:** Your Azure AD credential is stored once, encrypted, by your own Jentic One instance and exchanged for a short-lived bearer token at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'enable LTR on an Azure SQL database' or 'list azure sql ltr policies on a database', and Jentic returns the matching Microsoft.Sql backupLongTermRetentionPolicies operation with its input schema so the agent calls the right endpoint without browsing the ARM reference.

## Related APIs

- **Azure SQL Database Backup** — Manages short-term backups and restore operations on Azure SQL databases.
- **Azure SQL Database Disaster Recovery Configuration** — Configures failover groups and disaster recovery on Azure SQL databases.
- **Azure SQL Database (checkNameAvailability)** — Validates Azure SQL server names before provisioning the server that hosts the database.

## FAQ

### Why is there no official OpenAPI spec for Azure SQL Database Backup Long Term Retention Policy?

Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Azure SQL Database Backup Long Term Retention Policy 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 Azure SQL Database Backup Long Term Retention Policy API use?

The API uses Azure Active Directory OAuth 2.0 (the azure_auth scheme) with the user_impersonation scope on https://management.azure.com/. Through Jentic, the bearer token is fetched from your Jentic One instance and injected at call time so the agent never sees the raw client secret.

### How do I attach a long-term retention policy to an existing Azure SQL database?

PUT to /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/backupLongTermRetentionPolicies/{backupLongTermRetentionPolicyName} with a body that includes the recoveryServicesBackupPolicyResourceId of an existing Recovery Services vault policy.

### What are the rate limits for the Azure SQL Database Backup Long Term Retention Policy API?

The spec does not declare per-API limits; calls are throttled by Azure Resource Manager's per-subscription budget for read and write operations on Microsoft.Sql. On HTTP 429, honour the Retry-After header before retrying.

### How do I list LTR policies on a database through Jentic?

Search Jentic for 'list azure sql ltr policies on a database', load the schema for GET /servers/{serverName}/databases/{databaseName}/backupLongTermRetentionPolicies, and execute it. Jentic injects the Azure AD bearer token automatically.

### Is the Azure SQL LTR API free?

Control plane calls are free. The underlying long-term retention storage is billed against the Recovery Services vault that the policy references, at standard Azure backup storage rates.

### Can I limit what my agent is allowed to do with the Azure SQL Database Backup Long Term Retention Policy API?

Yes. Because you self-host Jentic One, your own rules decide which operations and credentials the agent may use, and you pick from this API's three operations: get a long-term retention policy on a database, list the policies on a database, and create or update a policy. The database identifier travels in the URL path (/servers/{serverName}/databases/{databaseName}/backupLongTermRetentionPolicies/...), so a rule can pin the agent to reading the retention policy on a single database. If you grant only the two read operations, the create-or-update PUT that changes a database's long-term retention policy is never exposed unless you choose to add it.
