AnomalyArmor Public Freshness API

The public-freshness API from AnomalyArmor — 8 operation(s) for public-freshness.

Operations 10

GET /api/v1/sdk/freshness/summary Get Freshness Summary #
GET /api/v1/sdk/freshness/schedules List Freshness Schedules #
POST /api/v1/sdk/freshness/schedules Create Freshness Schedule #
POST /api/v1/sdk/freshness/schedules/bulk Bulk Create Freshness Schedules #
PATCH /api/v1/sdk/freshness/schedules/{schedule_id} Update Freshness Schedule #
DELETE /api/v1/sdk/freshness/schedules/{schedule_id} Delete Freshness Schedule #
POST /api/v1/sdk/freshness/dry-run Freshness Dry Run #
GET /api/v1/sdk/freshness/{asset_id} Get Asset Freshness #
GET /api/v1/sdk/freshness List Freshness #
POST /api/v1/sdk/freshness/{asset_id}/refresh Trigger Freshness Refresh #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/anomalyarmor-ai:anomalyarmor-ai-public-freshness-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

anomalyarmor-ai-public-freshness-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anomalyarmor Ai Public Freshness API
  version: 1.0.0
  contact:
    name: AnomalyArmor Support
    url: https://anomalyarmor.ai/support
  license:
    name: Proprietary
  description: 'Operations tagged public-freshness across 3 of this provider''s published API definitions: anomalyarmor.ai-openapi.json, app.anomalyarmor.ai-openapi.json, docs.anomalyarmor.ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: http://localhost:8000
  description: Development server
- url: https://api.anomalyarmor.ai
  description: Production server
tags:
- name: public-freshness
paths:
  /api/v1/sdk/freshness/summary:
    get:
      tags:
      - public-freshness
      summary: Get Freshness Summary
      description: 'Get a summary of freshness across all assets.


        Returns counts and rates for fresh, stale, and unknown assets.


        **SDK Usage:**

        ```python

        from anomalyarmor import Client

        client = Client()

        summary = client.freshness.summary()

        print(f"Freshness rate: {summary.freshness_rate}%")

        ```'
      operationId: get_freshness_summary_api_v1_sdk_freshness_summary_get
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/sdk/freshness/schedules:
    get:
      tags:
      - public-freshness
      summary: List Freshness Schedules
      description: 'List freshness monitoring schedules.


        **SDK Usage:**

        ```python

        from anomalyarmor import Client

        client = Client()

        schedules = client.freshness.list_schedules(asset_id="my-asset-uuid")

        for s in schedules:

        print(f"{s.table_path}: check every {s.check_interval}")

        ```'
      operationId: list_freshness_schedules_api_v1_sdk_freshness_schedules_get
      parameters:
      - name: asset_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by asset UUID or name
          title: Asset Id
        description: Filter by asset UUID or name
      - name: is_active
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          description: Filter by active status
          title: Is Active
        description: Filter by active status
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 50
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - public-freshness
      summary: Create Freshness Schedule
      description: 'Create a freshness monitoring schedule.


        **SDK Usage:**

        ```python

        client = Client()

        schedule = client.freshness.create_schedule(

        asset_id="my-asset-uuid",

        table_path="public.orders",

        check_interval="1h",

        expected_interval_hours=24,

        )

        print(f"Created schedule: {schedule.id}")

        ```'
      operationId: create_freshness_schedule_api_v1_sdk_freshness_schedules_post
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFreshnessScheduleRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/sdk/freshness/schedules/bulk:
    post:
      tags:
      - public-freshness
      summary: Bulk Create Freshness Schedules
      description: 'Create multiple freshness monitoring schedules at once.


        **SDK Usage:**

        ```python

        client = Client()

        result = client.freshness.bulk_create_schedules(

        asset_id="my-asset-uuid",

        schedules=[

        {"table_path": "gold.orders", "check_interval": "1h"},

        {"table_path": "gold.customers", "check_interval": "1h"},

        ],

        )

        print(f"Created {result[''created'']} of {len(result[''results''])} schedules")

        ```'
      operationId: bulk_create_freshness_schedules_api_v1_sdk_freshness_schedules_bulk_post
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkCreateFreshnessScheduleRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/sdk/freshness/schedules/{schedule_id}:
    patch:
      tags:
      - public-freshness
      summary: Update Freshness Schedule
      description: 'Update a freshness schedule.


        **SDK Usage:**

        ```python

        client = Client()

        client.freshness.update_schedule(

        schedule_id="123",

        is_active=False,

        )

        ```'
      operationId: update_freshness_schedule_api_v1_sdk_freshness_schedules__schedule_id__patch
      parameters:
      - name: schedule_id
        in: path
        required: true
        schema:
          type: string
          title: Schedule Id
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFreshnessScheduleRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - public-freshness
      summary: Delete Freshness Schedule
      description: 'Delete a freshness schedule.


        **SDK Usage:**

        ```python

        client = Client()

        client.freshness.delete_schedule("123")

        ```'
      operationId: delete_freshness_schedule_api_v1_sdk_freshness_schedules__schedule_id__delete
      parameters:
      - name: schedule_id
        in: path
        required: true
        schema:
          type: string
          title: Schedule Id
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/sdk/freshness/dry-run:
    post:
      tags:
      - public-freshness
      summary: Freshness Dry Run
      description: 'Dry-run a freshness threshold against historical data.


        Tests a proposed freshness threshold against a table''s actual update history

        to predict how many alerts would fire. This helps users tune thresholds

        before enabling monitoring.


        **SDK Usage:**

        ```python

        from anomalyarmor import Client

        client = Client()


        result = client.freshness.dry_run(

        asset_id="my-asset-uuid",

        table_path="public.orders",

        expected_interval_hours=2.0,

        lookback_days=7,

        )


        print(f"Alert rate: {result.alert_rate_percent}%")

        print(f"Recommendation: {result.recommendation}")

        ```'
      operationId: freshness_dry_run_api_v1_sdk_freshness_dry_run_post
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FreshnessDryRunRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/sdk/freshness/{asset_id}:
    get:
      tags:
      - public-freshness
      summary: Get Asset Freshness
      description: 'Get freshness status for a specific asset.


        The asset_id can be either a UUID or qualified name.


        **SDK Usage:**

        ```python

        from anomalyarmor import Client

        client = Client()


        freshness = client.freshness.get("postgresql.mydb.public.users")

        if freshness.is_stale:

        print(f"Stale for {freshness.hours_since_update} hours")

        ```


        **CLI Usage:**

        ```bash

        armor freshness get postgresql.mydb.public.users

        ```'
      operationId: get_asset_freshness_api_v1_sdk_freshness__asset_id__get
      parameters:
      - name: asset_id
        in: path
        required: true
        schema:
          type: string
          title: Asset Id
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/sdk/freshness:
    get:
      tags:
      - public-freshness
      summary: List Freshness
      description: 'List freshness status for all assets.


        Returns freshness information for all monitored assets.

        Use the status filter to show only stale or fresh assets.


        **SDK Usage:**

        ```python

        from anomalyarmor import Client

        client = Client()


        # Get all stale assets

        stale = client.freshness.list(status="stale")

        for item in stale:

        print(f"{item.qualified_name}: {item.hours_since_update}h stale")

        ```'
      operationId: list_freshness_api_v1_sdk_freshness_get
      parameters:
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter by status: fresh, stale, unknown, disabled'
          title: Status
        description: 'Filter by status: fresh, stale, unknown, disabled'
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 50
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/sdk/freshness/{asset_id}/refresh:
    post:
      tags:
      - public-freshness
      summary: Trigger Freshness Refresh
      description: 'Trigger a freshness check for an asset.


        Requires read-write or admin scope.


        **SDK Usage:**

        ```python

        from anomalyarmor import Client

        client = Client()


        result = client.freshness.refresh("postgresql.mydb.public.users")

        print(f"Job ID: {result.job_id}")

        ```


        **CLI Usage:**

        ```bash

        armor freshness refresh postgresql.mydb.public.users

        ```'
      operationId: trigger_freshness_refresh_api_v1_sdk_freshness__asset_id__refresh_post
      parameters:
      - name: asset_id
        in: path
        required: true
        schema:
          type: string
          title: Asset Id
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
components:
  schemas:
    BulkCreateFreshnessScheduleItem:
      properties:
        table_path:
          type: string
          maxLength: 255
          minLength: 1
          title: Table Path
          description: Table path (e.g., schema.table_name)
        check_interval:
          type: string
          pattern: ^\d+[mhdw]$
          title: Check Interval
          description: 'Check interval: ''5m'', ''1h'', ''6h'', ''1d'', ''1w'''
          default: 1h
        monitoring_mode:
          type: string
          pattern: ^(auto_learn|explicit)$
          title: Monitoring Mode
          description: '''auto_learn'' or ''explicit'''
          default: auto_learn
        expected_interval_hours:
          anyOf:
          - type: number
            maximum: 720.0
            minimum: 0.1
          - type: 'null'
          title: Expected Interval Hours
          description: Hours until data is considered stale (for explicit mode)
        freshness_column:
          anyOf:
          - type: string
          - type: 'null'
          title: Freshness Column
          description: Column to check for freshness (auto-detected if not provided)
      type: object
      required:
      - table_path
      title: BulkCreateFreshnessScheduleItem
      description: Single item in a bulk freshness schedule creation request.
    CreateFreshnessScheduleRequest:
      properties:
        asset_id:
          type: string
          title: Asset Id
          description: Asset UUID or qualified name
        table_path:
          type: string
          maxLength: 255
          minLength: 1
          title: Table Path
          description: Table path (e.g., schema.table_name)
        check_interval:
          type: string
          pattern: ^\d+[mhdw]$
          title: Check Interval
          description: 'Check interval: ''5m'', ''1h'', ''6h'', ''1d'', ''1w'''
        expected_interval_hours:
          anyOf:
          - type: number
            maximum: 720.0
            minimum: 0.1
          - type: 'null'
          title: Expected Interval Hours
          description: Hours until data is considered stale (required for explicit mode)
        freshness_column:
          anyOf:
          - type: string
          - type: 'null'
          title: Freshness Column
          description: Column to check for freshness (auto-detected if not provided)
        monitoring_mode:
          type: string
          pattern: ^(auto_learn|explicit)$
          title: Monitoring Mode
          description: '''auto_learn'' or ''explicit'''
          default: auto_learn
        is_active:
          type: boolean
          title: Is Active
          description: Whether to enable monitoring
          default: true
      type: object
      required:
      - asset_id
      - table_path
      - check_interval
      title: CreateFreshnessScheduleRequest
      description: 'Request to create a freshness schedule via SDK.


        For auto_learn mode: expected_interval_hours is optional (system learns automatically)

        For explicit mode: expected_interval_hours is required to define the SLA'
    UpdateFreshnessScheduleRequest:
      properties:
        check_interval:
          anyOf:
          - type: string
            pattern: ^\d+[mhdw]$
          - type: 'null'
          title: Check Interval
        expected_interval_hours:
          anyOf:
          - type: number
            maximum: 720.0
            minimum: 0.1
          - type: 'null'
          title: Expected Interval Hours
        freshness_column:
          anyOf:
          - type: string
          - type: 'null'
          title: Freshness Column
        monitoring_mode:
          anyOf:
          - type: string
            pattern: ^(auto_learn|explicit)$
          - type: 'null'
          title: Monitoring Mode
        is_active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Active
      type: object
      title: UpdateFreshnessScheduleRequest
      description: 'Request to update a freshness schedule via SDK.


        Note: Validation for explicit mode requirements is handled by the service layer,

        which has access to existing schedule state. This allows PATCH semantics where

        users can switch to explicit mode while relying on existing expected_interval_hours.'
    BulkCreateFreshnessScheduleRequest:
      properties:
        asset_id:
          type: string
          title: Asset Id
          description: Asset UUID or qualified name
        schedules:
          items:
            $ref: '#/components/schemas/BulkCreateFreshnessScheduleItem'
          type: array
          maxItems: 100
          minItems: 1
          title: Schedules
          description: List of schedules to create (max 100)
      type: object
      required:
      - asset_id
      - schedules
      title: BulkCreateFreshnessScheduleRequest
      description: Request to create multiple freshness schedules at once.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    FreshnessDryRunRequest:
      properties:
        asset_id:
          type: string
          title: Asset Id
          description: Asset UUID or qualified name
        table_path:
          type: string
          title: Table Path
          description: Table to test (e.g., 'schema.table')
        expected_interval_hours:
          type: number
          maximum: 720.0
          minimum: 0.1
          title: Expected Interval Hours
          description: Threshold in hours to test
        lookback_days:
          type: integer
          maximum: 30.0
          minimum: 1.0
          title: Lookback Days
          description: Days of history to analyze
          default: 7
      type: object
      required:
      - asset_id
      - table_path
      - expected_interval_hours
      title: FreshnessDryRunRequest
      description: Request to dry-run a freshness threshold.
    StandardResponse:
      properties:
        success:
          type: boolean
          title: Success
        data:
          anyOf:
          - {}
          - type: 'null'
          title: Data
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        meta:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Meta
      type: object
      required:
      - success
      title: StandardResponse
      description: Standard API response wrapper.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
x-refined-from:
- anomalyarmor.ai-openapi.json
- app.anomalyarmor.ai-openapi.json
- docs.anomalyarmor.ai-openapi.json