{
  "openapi": "3.0.1",
  "info": {
    "title": "FDA Advisory Committee Catalyst Monitor",
    "description": "Track FDA advisory meeting dates, agendas, cancellations and briefing document links. Compare saved observations with source evidence. No paid API, inferred tickers or approval predictions.",
    "version": "1.0",
    "x-build-id": "AzXDTzctnGahxIKBN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maydit~fda-advisory-catalyst-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maydit-fda-advisory-catalyst-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/maydit~fda-advisory-catalyst-monitor/runs": {
      "post": {
        "operationId": "runs-sync-maydit-fda-advisory-catalyst-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/maydit~fda-advisory-catalyst-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-maydit-fda-advisory-catalyst-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": {
          "meetingUrls": {
            "title": "FDA meeting page URLs",
            "type": "array",
            "description": "Up to 40 individual HTTPS www.fda.gov advisory committee calendar meeting page URLs. Nonempty input uses only these pages. Omitted or empty discovers meetings from the selected official index.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "discoverySource": {
            "title": "Discovery index",
            "enum": [
              "calendar",
              "recent"
            ],
            "type": "string",
            "description": "Used only when meetingUrls is empty. Omitted uses calendar, with upcoming dates first and most recent past meetings if none are upcoming. Recent sorts meetings by the source index material date. The bounded index is not a complete historical archive."
          },
          "keywords": {
            "title": "Product or committee terms",
            "type": "array",
            "description": "Up to 20 case-insensitive terms. A meeting must match at least one in its title or extracted agenda. Pages are selected before this filter, so raise maxMeetings when a narrow filter matches no selected page.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "Meeting date from",
            "type": "string",
            "description": "Optional inclusive meeting date YYYY-MM-DD. Applies to discovery and explicit pages."
          },
          "dateTo": {
            "title": "Meeting date through",
            "type": "string",
            "description": "Optional inclusive meeting date YYYY-MM-DD."
          },
          "watchlistLabel": {
            "title": "Your watchlist label",
            "type": "string",
            "description": "Optional label copied into every row. This is your annotation, not a verified ticker, company mapping or FDA declaration."
          },
          "maxMeetings": {
            "title": "Maximum meeting pages",
            "minimum": 1,
            "maximum": 40,
            "type": "integer",
            "description": "Maximum pages selected and attempted per run, after discovery date filtering and before keyword filtering. At least 30 seconds separates source requests. Remaining unselected candidates are counted in SUMMARY.",
            "default": 1
          },
          "maxResults": {
            "title": "Maximum saved meetings",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum confirmed dataset rows. Each row is one meeting observation including its document link inventory. Skipped unchanged meetings do not use this allowance.",
            "default": 10
          },
          "comparePrevious": {
            "title": "Compare saved observations",
            "type": "boolean",
            "description": "First comparison emits new observations. Later runs report changed or unchanged fields and added, removed or revised document links. Only confirmed saved rows advance the named history.",
            "default": false
          },
          "onlyChanges": {
            "title": "Save only new or changed meetings",
            "type": "boolean",
            "description": "Implies comparePrevious. The first run saves new observations; a fully unchanged repeat correctly saves zero rows. Does not infer missing meetings or cancellations.",
            "default": false
          },
          "snapshotName": {
            "title": "Saved comparison name",
            "type": "string",
            "description": "1-80 letters, numbers, underscores or hyphens. History is also scoped to source selection, URL watchlist, dates and keywords. Use one writer per namespace; overlapping runs are unsupported.",
            "default": "default"
          },
          "stateStoreName": {
            "title": "History store name",
            "type": "string",
            "description": "3-63 letters, numbers or hyphens. Read and written only when comparisons are enabled. A dedicated store isolates your workflow.",
            "default": "maydit-fda-advisory-watchlists"
          },
          "maxRequests": {
            "title": "Maximum FDA requests",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum source HTTP requests, including the discovery index. No retries, redirects, PDF downloads or secondary hosts are fetched. Default discovery needs two requests.",
            "default": 8
          },
          "maxRunSeconds": {
            "title": "Run budget in seconds",
            "minimum": 30,
            "maximum": 900,
            "type": "integer",
            "description": "Includes request spacing, source work and history. Also constrained by the platform deadline minus 25 seconds. Default two-request discovery normally takes about 31 seconds; allow roughly 30 seconds for each additional page.",
            "default": 240
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}