{
  "openapi": "3.0.1",
  "info": {
    "title": "Cloud AI Change Radar: Bedrock, Azure & Vertex Model Alerts",
    "description": "Get alerted when AI models are added, removed, change price or reach new regions on AWS Bedrock, Azure AI Foundry and Google Vertex AI. Filter by model and location, send to Slack or a webhook.",
    "version": "0.1",
    "x-build-id": "al3VyR75AT4aw9glg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cobalt_relay~cloud-ai-change-radar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cobalt_relay-cloud-ai-change-radar",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/cobalt_relay~cloud-ai-change-radar/runs": {
      "post": {
        "operationId": "runs-sync-cobalt_relay-cloud-ai-change-radar",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/cobalt_relay~cloud-ai-change-radar/run-sync": {
      "post": {
        "operationId": "run-sync-cobalt_relay-cloud-ai-change-radar",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "watchModels": {
            "title": "Models to watch",
            "type": "array",
            "description": "Only report changes for these models, one per line. Partial names work: 'claude', 'gpt 5', 'gemini 2.5 flash', 'llama'. Leave empty to watch every model.",
            "items": {
              "type": "string"
            }
          },
          "changeTypes": {
            "title": "Changes to report",
            "type": "array",
            "description": "Which kinds of change to report.",
            "items": {
              "type": "string",
              "enum": [
                "model_added",
                "model_removed",
                "region_added",
                "region_removed",
                "price_decrease",
                "price_increase"
              ],
              "enumTitles": [
                "New model on a cloud",
                "Model removed from a cloud (possible retirement)",
                "Model available in new regions",
                "Model dropped from regions",
                "Price cut",
                "Price increase"
              ]
            },
            "default": [
              "model_added",
              "model_removed",
              "region_added",
              "region_removed",
              "price_decrease",
              "price_increase"
            ]
          },
          "location": {
            "title": "Location",
            "enum": [
              "anywhere",
              "canada",
              "us",
              "eu",
              "uk",
              "custom"
            ],
            "type": "string",
            "description": "Only report changes in regions in this location.",
            "default": "anywhere"
          },
          "customRegions": {
            "title": "Custom regions",
            "type": "array",
            "description": "Used when Location is 'Custom regions'. Region codes from any cloud, e.g. ca-central-1, canadacentral, swedencentral, eu.",
            "items": {
              "type": "string"
            }
          },
          "clouds": {
            "title": "Clouds",
            "type": "array",
            "description": "Leave empty for all three.",
            "items": {
              "type": "string",
              "enum": [
                "aws",
                "azure",
                "gcp"
              ],
              "enumTitles": [
                "AWS Bedrock",
                "Azure AI Foundry",
                "Google Vertex AI"
              ]
            }
          },
          "period": {
            "title": "What to report",
            "enum": [
              "sinceLastRun",
              "days"
            ],
            "type": "string",
            "description": "'New since last run' is made for schedules: each run reports only what changed since that schedule's previous run (the first run looks back 'Days to look back'). 'Last N days' always reports a fixed window.",
            "default": "sinceLastRun"
          },
          "lookbackDays": {
            "title": "Days to look back",
            "minimum": 1,
            "maximum": 400,
            "type": "integer",
            "description": "Window for 'Last N days', and for the first run of a schedule.",
            "default": 7
          },
          "minPriceChangePct": {
            "title": "Minimum price change (%)",
            "minimum": 0,
            "type": "number",
            "description": "Ignore price changes smaller than this.",
            "default": 1
          },
          "includeBatch": {
            "title": "Include batch prices",
            "type": "boolean",
            "description": "Also report price changes for discounted batch and other non-standard tiers.",
            "default": false
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Optional. Post a summary to Slack when something changes. Create one at api.slack.com/messaging/webhooks."
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional. POST the changes as JSON to this URL (Zapier, Make, n8n, Teams workflows, your own service)."
          },
          "notifyWhenNoChanges": {
            "title": "Notify even when nothing changed",
            "type": "boolean",
            "description": "Send a 'no changes' message, so you know the check ran.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}