{
  "openapi": "3.0.1",
  "info": {
    "title": "Microsoft 365 Roadmap Monitor - New & Changed Features",
    "description": "Track what changed on the Microsoft 365 Roadmap since your last run: new features, status changes, moved release dates and removals. Filter by product, cloud and platform. Ready for Slack, Teams or email.",
    "version": "1.0",
    "x-build-id": "AsFR4kk1fvYx78sOY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/snappytools~m365-roadmap-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-snappytools-m365-roadmap-monitor",
        "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/snappytools~m365-roadmap-monitor/runs": {
      "post": {
        "operationId": "runs-sync-snappytools-m365-roadmap-monitor",
        "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/snappytools~m365-roadmap-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-snappytools-m365-roadmap-monitor",
        "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": {
          "mode": {
            "title": "What to return",
            "enum": [
              "changes",
              "all"
            ],
            "type": "string",
            "description": "\"Changes since my last run\" is for schedules: the first run saves a snapshot, and later runs return only new, changed and removed items. \"Everything\" returns every roadmap item that matches your filters, every time.",
            "default": "changes"
          },
          "products": {
            "title": "Products",
            "type": "array",
            "description": "Only items for these products. Matches whole words, so \"Teams\" finds \"Microsoft Teams\" and \"Copilot\" finds \"Microsoft Copilot (Microsoft 365)\". Leave empty for all products.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeProducts": {
            "title": "Leave out these products",
            "type": "array",
            "description": "Skip items that only belong to these products, for example \"Dynamics 365\" or \"Power Apps\". Items shared with a product you didn't exclude are kept.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Only items whose title or description contains one of these words or phrases (whole words, not case sensitive). For example \"retention\", \"Mac\" or \"Conditional Access\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "statuses": {
            "title": "Status",
            "type": "array",
            "description": "Only items with these statuses. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "In development",
                "Rolling out",
                "Launched",
                "Cancelled"
              ],
              "enumTitles": [
                "In development",
                "Rolling out",
                "Launched",
                "Cancelled"
              ]
            },
            "default": []
          },
          "clouds": {
            "title": "Cloud",
            "type": "array",
            "description": "Only items for these Microsoft clouds. Most tenants are Worldwide. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Worldwide",
                "GCC",
                "GCC High",
                "DoD"
              ],
              "enumTitles": [
                "Worldwide (standard multi-tenant)",
                "GCC",
                "GCC High",
                "DoD"
              ]
            },
            "default": []
          },
          "platforms": {
            "title": "Platform",
            "type": "array",
            "description": "Only items for these platforms. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Web",
                "Desktop",
                "Mac",
                "iOS",
                "Android",
                "Mobile",
                "Linux",
                "Developer",
                "Teams and Surface Devices"
              ],
              "enumTitles": [
                "Web",
                "Desktop (Windows)",
                "Mac",
                "iOS",
                "Android",
                "Mobile",
                "Linux",
                "Developer",
                "Teams and Surface devices"
              ]
            },
            "default": []
          },
          "reportChanges": {
            "title": "Changes to report",
            "type": "array",
            "description": "Which kinds of change to return in \"Changes since my last run\" mode. Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "status",
                "dates",
                "details",
                "tags",
                "removed"
              ],
              "enumTitles": [
                "New items",
                "Status changes (for example In development to Rolling out)",
                "Release or preview date moved",
                "Title or description edited",
                "Products, platforms, clouds or release phase changed",
                "Removed from the roadmap"
              ]
            },
            "default": []
          },
          "firstRunDays": {
            "title": "First run: include the last N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "The first run has nothing to compare with, so it saves a snapshot and returns items added or updated in this many days. Set 0 to just save the snapshot.",
            "default": 7
          },
          "modifiedWithinDays": {
            "title": "Only items updated in the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "For \"Everything\" mode. 0 means no limit.",
            "default": 0
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The most rows to return in one run. In changes mode, anything over the limit is kept for the next run, not lost.",
            "default": 1000
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Optional. Each combination of filters keeps its own memory automatically. Give a name only if you want two schedules with the same filters to track changes separately."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}