{
  "openapi": "3.0.1",
  "info": {
    "title": "FedRAMP Marketplace Authorization Monitor",
    "description": "Monitor official FedRAMP Marketplace product authorization/status data for vendor-risk, procurement, and compliance drift.",
    "version": "0.0",
    "x-build-id": "tDCqcsU17K5ukAI7a"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/defenestrator~fedramp-marketplace-authorization-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-defenestrator-fedramp-marketplace-authorization-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/defenestrator~fedramp-marketplace-authorization-monitor/runs": {
      "post": {
        "operationId": "runs-sync-defenestrator-fedramp-marketplace-authorization-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/defenestrator~fedramp-marketplace-authorization-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-defenestrator-fedramp-marketplace-authorization-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": {
          "searchTerms": {
            "title": "Watch terms",
            "type": "array",
            "description": "Optional vendor, product, category, agency, or keyword filters. Empty means monitor the newest/recently changed Marketplace products up to maxProducts.",
            "items": {
              "type": "string"
            }
          },
          "productIds": {
            "title": "Specific FedRAMP product IDs",
            "type": "array",
            "description": "Optional exact product IDs, e.g. FR2000863987A. If provided, rows for these products are included even when searchTerms do not match.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "statuses": {
            "title": "Certification statuses",
            "type": "array",
            "description": "Optional public status filters such as FedRAMP Authorized, FedRAMP Certified, FedRAMP Ready, FedRAMP In Process, or Agency Auth In Process.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "impactLevels": {
            "title": "Impact levels",
            "type": "array",
            "description": "Optional impact filters such as Low, Moderate, High, Class B (Low), Class C (Moderate), or Class D (High). Matching is case-insensitive and substring-based.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "serviceModels": {
            "title": "Service models",
            "type": "array",
            "description": "Optional service model filters such as SaaS, PaaS, or IaaS.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "changedSince": {
            "title": "Changed since date",
            "type": "string",
            "description": "Optional ISO date. If omitted, the Actor uses today minus recentChangeWindowDays. Used to flag recent status updates and status-timeline changes.",
            "default": ""
          },
          "recentChangeWindowDays": {
            "title": "Recent change window in days",
            "minimum": 1,
            "maximum": 730,
            "type": "integer",
            "description": "Used when changedSince is empty. Products with status updates or status-timeline entries inside this window are alert candidates.",
            "default": 30
          },
          "assessmentDueWindowDays": {
            "title": "Annual assessment due window in days",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Flag authorized products whose annual assessment date is overdue or due within this many days.",
            "default": 90
          },
          "minReuseCount": {
            "title": "Minimum reuse count",
            "minimum": 0,
            "type": "integer",
            "description": "Optional minimum reuse count to focus on widely reused services. Zero disables this filter.",
            "default": 0
          },
          "previousSnapshot": {
            "title": "Previous snapshot rows",
            "type": "array",
            "description": "Optional prior rows from this Actor's dataset. The Actor compares status, impact, assessment, authorization, reuse, and row hashes to flag drift. Inline JSON avoids requiring Apify storage permissions in this private MVP.",
            "default": []
          },
          "includeAllRows": {
            "title": "Include all matched rows",
            "type": "boolean",
            "description": "If false, only alert rows are pushed to the dataset; OUTPUT still includes run counts.",
            "default": true
          },
          "maxProducts": {
            "title": "Maximum products to output",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Upper bound after filtering and sorting. Keeps scheduled runs cheap and datasets reviewable.",
            "default": 100
          },
          "requestTimeoutSecs": {
            "title": "Request timeout seconds",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Timeout for each official FedRAMP JSON request.",
            "default": 45
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}