Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/admbe/FluxOp/llms.txt

Use this file to discover all available pages before exploring further.

The inventory and changes endpoints expose Azure Resource Graph snapshot data enriched with cost, utilization, and opportunity signals — plus consecutive-snapshot diffs for drift detection. All endpoints require a reader or admin session and support pagination. Export variants stream up to 50,000 rows as CSV or XLSX.

GET /api/inventory

Returns a paginated, filterable view of the Azure estate. Each resource record is enriched with monthly cost estimates, utilization telemetry, and the highest-severity opportunity Flux has detected for that resource. Authentication: reader

Query parameters

ParameterTypeDefaultDescription
searchstring""Free-text match against resource name, ID, type, subscription, and resource group.
resourceTypestring""Filter by Azure resource type (e.g. microsoft.compute/virtualmachines).
subscriptionIdstring""Filter to a single subscription GUID.
regionstring""Filter by Azure region name (e.g. eastus).
virtualTagKeystring""Filter to resources that have this virtual tag key applied.
virtualTagValuestring""Combined with virtualTagKey — filter to resources matching both key and value.
opportunityOnlybooleanfalseWhen true, returns only resources that have at least one active opportunity.
limitinteger250Page size. Must be between 1 and 2000.
offsetinteger0Zero-based row offset for pagination.

Response

{
  "items": [ /* array of resource records */ ],
  "total": 1842
}
Each item in items contains:
FieldTypeDescription
namestringResource display name.
resourceIdstringFull Azure resource ID.
resourceTypestringAzure resource type.
subscriptionNamestringFriendly subscription name.
subscriptionIdstringSubscription GUID.
resourceGroupstringResource group name.
regionstringAzure region.
kindstringResource kind sub-type where applicable.
skustringSKU / size (e.g. Standard_D4s_v3).
provisioningStatestringLast-known provisioning state.
managedBystringResource ID of the managing resource, if any.
estimatedMonthlyCostnumber | nullPay-as-you-go estimated monthly cost.
amortizedMonthlyCostnumber | nullAmortized monthly cost (includes reserved instance and savings plan discounts).
costCurrencystringISO 4217 currency code.
costSourcestringSource of the cost enrichment (e.g. cost_management).
utilizationPercentnumber | nullMost recent utilization percentage (CPU for VMs).
utilizationSourcestring | nullTelemetry provider that produced the utilization figure.
opportunityKindstring | nullCategory of the highest-severity opportunity (e.g. RightSize, Shutdown).
opportunityReasonstring | nullOne-sentence rationale for the opportunity.
estimatedMonthlySavingsnumber | nullEstimated monthly savings from acting on the opportunity.
observedAtstringISO 8601 timestamp of the Resource Graph snapshot.
tagsobjectNative Azure resource tags as a key-value map.
effectiveVirtualTagsobjectComputed virtual tags (from rules and overrides) as a key-value map.

Example

curl "https://your-flux-host/api/inventory?resourceType=microsoft.compute/virtualmachines&opportunityOnly=true&limit=50" \
  -H "Cookie: AppServiceAuthSession=<token>"

GET /api/inventory/export

Streams the full filtered inventory as a CSV or XLSX file. Accepts the same filter parameters as GET /api/inventory and can return up to 50,000 rows. Authentication: reader

Additional parameter

ParameterTypeDefaultDescription
formatstring"csv"Output format — csv or xlsx.
XLSX exports include a Metadata sheet recording the generation timestamp, analytics read mode, active snapshot version (when applicable), and all applied filters. This preserves provenance for downstream spreadsheet workflows. The CSV and XLSX column set matches the full items field list from GET /api/inventory, with tags and effectiveVirtualTags serialized as compact JSON strings.
curl "https://your-flux-host/api/inventory/export?format=xlsx&subscriptionId=<guid>" \
  -H "Cookie: AppServiceAuthSession=<token>" \
  -o flux-azure-inventory.xlsx

GET /api/changes

Returns paginated inventory diffs between consecutive Azure Resource Graph snapshots, capturing resource additions, deletions, property changes, and cost movements. Authentication: reader

Query parameters

ParameterTypeDefaultDescription
searchstring""Free-text search across resource name, ID, and type.
changeTypestring""Filter by diff type (e.g. added, removed, modified).
subscriptionIdstring""Filter to a single subscription GUID.
resourceGroupstring""Filter to a single resource group.
windowDaysinteger7Look-back window in days. Must be between 0 and 365.
limitinteger250Page size. Must be between 1 and 2000.
offsetinteger0Zero-based row offset for pagination.

Response

{
  "items": [ /* array of change records */ ],
  "total": 84
}
Each change record includes the affected resource’s identity fields, the detected change type, the before/after property evidence, and the observation timestamps for both snapshots.

Example

curl "https://your-flux-host/api/changes?windowDays=14&changeType=removed" \
  -H "Cookie: AppServiceAuthSession=<token>"

GET /api/changes/anomalies

Returns the current change-volume baselines and any statistically anomalous change volumes detected across the estate. Flux uses a median/MAD (median absolute deviation) baseline computed over the configured observation history — the same statistical approach used for cost anomalies. This endpoint is also accessible at the legacy path GET /api/anomalies. Authentication: reader No query parameters. The response contains the estate-level and per-scope baselines, the current-window change counts, computed k-scores, and any scopes that exceed the anomaly threshold.

Example

curl "https://your-flux-host/api/changes/anomalies" \
  -H "Cookie: AppServiceAuthSession=<token>"
{
  "baselines": [
    {
      "scope": "subscription/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "median": 12.0,
      "mad": 3.5,
      "currentCount": 47,
      "kScore": 10.0,
      "isAnomalous": true
    }
  ],
  "anomalyCount": 1
}

Build docs developers (and LLMs) love