Summary
- The Labs API is now a superset of the Astro API v1. It serves every v1 endpoint at the same path, and where Labs defines its own operation at the same method and path, it serves the Labs version.
- Added load watermarks to the daily-usage response, so callers can tell a usage date that has finished loading from one that is still filling in.
- Added
hostProviderNameto the FOCUS-format daily-usage response.
Added
- Properties
completeThroughDate(string),dataAsOf(string,date-time): added toDailyUsagesPaginated, the response ofGET /organizations/{organizationId}/billing/daily-usage(LabsListDailyUsage).completeThroughDateis the last usage date, in UTC, whose load has finished.dataAsOfis when the Organization’s most recent cost row was written, in UTC. Both values cover all of the Organization’s usage data regardless of the request’s filters, and the response omits both when the Organization has no cost data.x_CompleteThroughDate,x_DataAsOf: added toFocusDailyUsagesPaginated, the FOCUS-format equivalent of the above.hostProviderName(string, required): added toFocusDailyUsage. The cloud provider hosting the charged infrastructure, for exampleAWS.
Summary
- Added bulk create/delete endpoints for organization notification channels.
- Added cursor-based pagination to the daily-usage, deployment-usage, and workspace-usage endpoints, alongside the existing offset pagination.
- Moved the per-deployment and per-workspace usage endpoints from under
/billingto/usages— a breaking path change for existing callers. - Added
computeType/workerQueueNameto the daily-usage response, andbillingCurrency/x_ComputeType/x_WorkerQueueNameto its FOCUS-format variant, so cost rows from different worker queues at the same compute size are no longer indistinguishable.
Added
- Endpoints
POST /organizations/{organizationId}/notification-channels(LabsCreateNotificationChannels): Create up to 30 notification channels for an organization in one atomic request. Not idempotent — a retry after an unacknowledged2xxresponse creates the channels a second time. Returns aNotificationChannelsList.DELETE /organizations/{organizationId}/notification-channels(LabsDeleteNotificationChannels): Delete up to 30 notification channels for an organization in one atomic request. Fails the whole batch if any channel is not found, is still used by an alert or a monitor, or the caller cannot delete it.
- Schemas
NotificationChannel,NotificationChannelsList: a single notification channel and the list returned by the bulk create endpoint.BulkCreateNotificationChannelsRequest,BulkDeleteNotificationChannelsRequest: request bodies for the bulk create/delete endpoints (at most 30 channels or IDs per request).CreateNotificationChannelRequest: discriminated bytype, with one variant per channel type —CreateSlackNotificationChannelRequest,CreateEmailNotificationChannelRequest,CreatePagerDutyNotificationChannelRequest,CreateOpsgenieNotificationChannelRequest,CreateDagTriggerNotificationChannelRequest.SlackNotificationChannelDefinition,EmailNotificationChannelDefinition,PagerDutyNotificationChannelDefinition,OpsgenieNotificationChannelDefinition,DagTriggerNotificationChannelDefinition: the type-specific channel configuration (webhook URL, recipients, integration key, API key, or Dag trigger details).
- Properties
pageSize,pageToken(query parameters), andnextPageToken,pageSize,previousPageToken(response fields, all required): added to the daily-usage, deployment-usage, and workspace-usage endpoints, enabling cursor-mode pagination (AIP-158) alongside the existingoffset/limitmode.computeType,workerQueueName(strings): added toDailyUsage. The compute instance type and worker queue a cost row is attributed to, if applicable.billingCurrency(string, required),x_ComputeType,x_WorkerQueueName: added toFocusDailyUsage, the FOCUS-format equivalent of the above.
Changed
GET /organizations/{organizationId}/billing/aggregate/deployment-usageand.../workspace-usagemoved toGET /organizations/{organizationId}/usages/aggregate/deployment-usageand.../workspace-usage. This is a breaking path change for existing callers; thedaily-usage(cost) endpoint path is unchanged.sortson the daily-usage, deployment-usage, and workspace-usage endpoints is now a closed enum of<field>:asc/<field>:descvalues instead of an unconstrained string.limit’s minimum on these endpoints changed from0to1.- Endpoint descriptions no longer reference the internal Sigma cost breakdown export system that backs this data.
Summary
- Added bulk create/delete endpoints for organization allowed IP address ranges.
- Added an endpoint to retrieve Organization audit logs for a time period.
- Added three billing usage endpoints: daily usage, per-deployment usage, and per-workspace usage, synced from the org’s Sigma cost breakdown export.
Added
- Endpoints
POST /organizations/{organizationId}/allowed-ip-address-ranges(LabsCreateAllowedIpAddressRanges): Bulk create up to 1,000 allowed IP address (CIDR) ranges for an organization in one atomic request. Not idempotent — a retry after an unacknowledged2xxmay return409. Returns anAllowedIpAddressRangesList.DELETE /organizations/{organizationId}/allowed-ip-address-ranges(LabsDeleteAllowedIpAddressRanges): Bulk delete up to 1,000 allowed IP address ranges for an organization in one atomic request. Unknown or duplicate IDs are accepted and ignored.GET /organizations/{organizationId}/audit-logs(LabsGetOrganizationAuditLogs): Retrieve an organization’s audit logs for a time period, filtered withstartDateandendDate. Returns a raw byte stream (application/octet-stream).GET /organizations/{organizationId}/billing/daily-usage(LabsListDailyUsage): List daily deployment resource cost data. Filter bystartDate/endDate(max 12 months),workspaceId, ordeploymentId(up to 1,000 each), and choose the response shape withformat(astronomerorfocus— FOCUS format). Paginate withoffset/limitand sort withsorts. Enterprise+ tier only.GET /organizations/{organizationId}/billing/aggregate/deployment-usage(LabsListDeploymentUsage): List per-deployment task, Dag, and operator activity metrics, aggregated by day, week, or month (timeGrain). Filter bystartDate/endDate(max 12 months),workspaceId, ordeploymentId. Enterprise+ tier only.GET /organizations/{organizationId}/billing/aggregate/workspace-usage(LabsListWorkspaceUsage): List per-workspace task, Dag, and operator activity metrics, aggregated by day, week, or month (timeGrain). Filter bystartDate/endDate(max 12 months) orworkspaceId. Enterprise+ tier only.
- Schemas
AllowedIpAddressRange,AllowedIpAddressRangesList: represent a single allowed IP range and a paginated list of them.BulkCreateAllowedIpAddressRangesRequest,BulkDeleteAllowedIpAddressRangesRequest: request bodies for the bulk create/delete endpoints.DailyUsage,DailyUsageVariants,DailyUsagesPaginated: standard-format daily usage records and paginated response.FocusDailyUsage,FocusDailyUsagesPaginated: FOCUS-format daily usage records and paginated response.DeploymentUsage,DeploymentUsagesPaginated: per-deployment usage records and paginated response.WorkspaceUsage,WorkspaceUsagesPaginated: per-workspace usage records and paginated response.
Summary
- Added a
LabsListAlertsendpoint to the Labs API.GET /organizations/{organizationId}/alertslists alerts and their notification channels, with filtering by alert or deployment IDs.
Added
- Endpoints
GET /organizations/{organizationId}/alerts(LabsListAlerts): List alerts, including their notification channels. Filter withalertIdsordeploymentIds(up to 1,000 IDs each) and paginate withoffsetandlimit(default 20, maximum 1,000). Returns anAlertsList.
Summary
- Added bulk alert management to the Labs API. New
create-alerts,update-alerts, anddelete-alertsendpoints let clients manage up to 30, 30, and 20 alerts per request across six alert types: Dag success, Dag failure, Dag duration, Dag timeliness, task duration, and task failure.
Added
-
Endpoints
POST /organizations/{organizationId}/create-alerts(LabsCreateAlerts): Bulk create up to 30 alerts. Takes aCreateAlertsRequestand returns anAlertsList.POST /organizations/{organizationId}/update-alerts(LabsUpdateAlerts): Bulk update up to 30 alerts. Takes anUpdateAlertsRequestand returns anAlertsList.POST /organizations/{organizationId}/delete-alerts(LabsDeleteAlerts): Bulk delete up to 20 alerts. Takes aDeleteAlertsRequest. Returns204with no response body.
-
Schemas
Alert,AlertsList,AlertNotificationChannel,AlertRules,BasicSubjectProfile: Response shapes for an alert, a list of alerts, a notification channel, an alert’s rules, and the profile of the user or API token that created or updated an alert.CreateAlertsRequest,UpdateAlertsRequest,DeleteAlertsRequest: Bulk request wrappers.CreateAlertsRequestandUpdateAlertsRequesteach wrap a list ofCreateAlertRequestorUpdateAlertRequest, atype-discriminated union over the six alert types.DeleteAlertsRequestwraps a list ofalertIds.- Per-type request, properties, and rules schemas: each of the six alert types (
DAG_SUCCESS,DAG_FAILURE,DAG_DURATION,DAG_TIMELINESS,TASK_DURATION, andTASK_FAILURE) gets its own create and update request, properties, and rules schemas, for exampleCreateDagDurationAlertRequest,CreateDagDurationAlertProperties, andCreateDagDurationAlertRulesfor Dag duration alerts. Each type’s properties schema holds its type-specific configuration, for exampledagDurationSecondsfor Dag duration alerts ordagDeadlineanddaysOfWeekfor Dag timeliness alerts. PatternMatch,PatternMatchRequest: Scope an alert to specific Dag or task IDs using anentityType(DAG_IDorTASK_ID) andoperatorType(IS,IS_NOT,INCLUDES, orEXCLUDES).
Summary
- Initial release of the Astro Labs API, an experimental surface for Labs features.
- Adds Observability endpoints for AI-powered Dag-failure diagnosis: start a diagnosis run, poll its status, and stream its events over Server-Sent Events.
- Adds a demonstration
Exampleendpoint that shows how Labs minor-version pinning behaves through theX-Labs-API-Versionheader.
Added
-
Endpoints
POST /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs: Start an asynchronous Dag-failure diagnosis run.GET /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs/{diagnosisRunId}/status: Get the status of a diagnosis run.GET /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs/{diagnosisRunId}/events: Stream diagnosis events over Server-Sent Events, with reconnection through thelastEventIdquery parameter.
-
Schemas
DagFailureDiagnosisRun: A started diagnosis run. IncludesrunId,status, andcreatedAt.DagFailureDiagnosisRunStatus: The current status of a diagnosis run. IncludesrunId,status,createdAt, andupdatedAt.StartDagFailureDiagnosisRequest: The request body for starting a run. Required:dagId,runId. Optional:taskId,tryNumbers,skipCacheRead.Example: The demonstration response. Includesid,createdAt, andproofOfConcept.Error: The error response shape. Includesmessage,statusCode, andrequestId.