{
  "openapi": "3.0.1",
  "info": {
    "title": "Academic Conference CFP & Registration Monitor",
    "description": "Monitors conference names, CFP deadlines, registration dates, fees, and attendance mode from academic conference pages. Export data, run via API, schedule and monitor runs, or integrate with other tools.",
    "version": "0.1",
    "x-build-id": "nfJoqGdvuKGU3aeOx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trovevault~academic-conference-cfp-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trovevault-academic-conference-cfp-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/trovevault~academic-conference-cfp-monitor/runs": {
      "post": {
        "operationId": "runs-sync-trovevault-academic-conference-cfp-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/trovevault~academic-conference-cfp-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-trovevault-academic-conference-cfp-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": {
          "sourceBundles": {
            "title": "Source Bundles",
            "type": "array",
            "description": "Recommended built-in conference source bundles maintained by the actor. Use these first if you want the actor itself to discover conferences. `curated-upcoming-deadlines` favors higher-signal upcoming deadline pages. `broad-discovery` adds WikiCFP for wider but noisier coverage.",
            "items": {
              "type": "string",
              "enum": [
                "curated-upcoming-deadlines",
                "broad-discovery"
              ],
              "enumTitles": [
                "Curated upcoming deadlines",
                "Broad discovery"
              ]
            },
            "default": [
              "curated-upcoming-deadlines"
            ]
          },
          "sourcePresets": {
            "title": "Source Presets",
            "type": "array",
            "description": "Advanced override for individual source presets. Most users should use `sourceBundles` instead. Use this only when you want to force a specific built-in source such as Researchr, OpenResearch, or WikiCFP.",
            "items": {
              "type": "string",
              "enum": [
                "researchr-upcoming-deadlines",
                "openresearch-upcoming-deadlines",
                "wikicfp-recent-cfps"
              ],
              "enumTitles": [
                "Researchr upcoming deadlines",
                "OpenResearch upcoming deadlines",
                "WikiCFP recent CFPs"
              ]
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Advanced custom URLs to inspect in addition to built-in bundles. Use this when you want to target a specific conference page, CFP page, or registration page that is not already covered by the actor's built-in sources.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "followConferenceLinks": {
            "title": "Follow Conference Links",
            "type": "boolean",
            "description": "When enabled, the actor follows links from listing pages to conference detail pages and tries to enrich each row with additional dates, links, and registration fields. This improves coverage on Researchr and WikiCFP, but increases request volume and run time.",
            "default": true
          },
          "keywords": {
            "title": "Keyword Filter",
            "type": "array",
            "description": "Optional keyword list used to keep only conferences whose name, organizer, summary, location, or URL matches one of the terms. Use this to focus on a field such as machine learning, HCI, or software engineering.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Country Filter",
            "type": "array",
            "description": "Optional list of countries or regions used to keep only conferences that match the extracted country or location text. Use values such as Portugal, Germany, Europe, or Asia-Pacific.",
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "Date From",
            "type": "string",
            "description": "Optional lower bound in `YYYY-MM-DD` format. The actor keeps conferences that have at least one relevant date on or after this value, including submission deadlines, notification dates, registration dates, or conference dates."
          },
          "dateTo": {
            "title": "Date To",
            "type": "string",
            "description": "Optional upper bound in `YYYY-MM-DD` format. The actor keeps conferences that have at least one relevant date on or before this value."
          },
          "futureOnly": {
            "title": "Future Only",
            "type": "boolean",
            "description": "When enabled, the actor prefers conferences with upcoming deadlines or upcoming event dates and filters out clearly past opportunities when enough date information is available. Date range filters override this setting.",
            "default": true
          },
          "maxConferences": {
            "title": "Max Conferences",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of conference records to save after parsing and filtering. Lower values keep runs cheaper and are recommended for daily checks.",
            "default": 5
          },
          "maxRequestsPerCrawl": {
            "title": "Max Requests Per Crawl",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Safety cap on total page requests, including directory pages and followed conference links. This protects runs from unexpectedly large crawls.",
            "default": 12
          },
          "requestTimeoutSecs": {
            "title": "Request Timeout (seconds)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "HTTP timeout applied to each page fetch. Shorter timeouts keep monitoring runs fast on unreliable sites, while slightly higher values improve success rates on slower academic conference pages.",
            "default": 25
          },
          "datasetId": {
            "title": "Dataset ID (optional)",
            "type": "string",
            "description": "ID of an existing Apify dataset to append results to, in addition to the default run dataset. Leave blank to use only the default run dataset."
          },
          "runId": {
            "title": "Run ID (optional)",
            "type": "string",
            "description": "ID of an existing Apify actor run to associate results with for downstream workflows or pipeline tracing. Leave blank for standalone runs."
          },
          "includeErrorRows": {
            "title": "Include Error Rows",
            "type": "boolean",
            "description": "When enabled, operational failures are also written into the dataset as explicit error rows. Leave this disabled for cleaner production datasets and use the run report plus logs for operational debugging.",
            "default": false
          },
          "includeRawSignals": {
            "title": "Include Raw Signals",
            "type": "boolean",
            "description": "When enabled, the actor keeps extra raw text snippets such as date mentions, fee snippets, and attendance signals in each dataset row. This is mainly for audits and extractor debugging and is disabled by default for cleaner public output.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}