This product is in development and currently only available to early partners as an Alpha feature.

Overview

The Active Monitoring API continuously tracks and updates answers for specific web tasks, ensuring real-time accuracy of information. This API enables you to write “standing tasks” which are monitored at either a “daily” or “weekly” cadence. Polling the endpoint for active monitoring runs will return when the answer last changed along with the new answer for the standing query.

Example Workflow

Suppose we want to monitor who the CTO of a given company is.

  1. Create Task with the Tasks endpoint.
        curl -X POST https://api.parallel.ai/v0/tasks \
        -H "x-api-key: $PARALLEL_API_KEY" \
        -H "Content-Type: application/json" \
        -d '
        {
                "name": "CTO Task",
                "prompt": "Who is the CTO of ${company}",
                "input_schema": {
                    "properties": {
                        "company": {"type": "string"}
                    },
                    "required": ["company"],
                    "type": "object"
                },
                "output_schema": {
                    "type": "object",
                    "properties": {"answer": {"type": "string"}}
                }
        }'
  1. Initiate Monitoring by posting to an Active Monitoring-specific runner. Using this runner tells us that this run needs to be monitored. Contact our team to get access to this runner.
        curl -X POST https://api.parallel.ai/v0/tasks/0146b432-c081-430b-bb82-56c114499bb1/runners/ACTIVE_MONITORING/runs \
        -H "x-api-key: $PARALLEL_API_KEY" \
        -H "Content-Type: application/json" \
        -d '
        {
                "arguments" : {"company": "OpenAI"},
                "runner_params": {"monitoring_frequency": "daily"}
        }'
  1. Check monitoring results a week later
        curl -H "x-api-key: $PARALLEL_API_KEY" https://api.parallel.ai/v0/tasks/0146b432-c081-430b-bb82-56c114499bb1/runs/dd6bf947-6105-43e4-b5c7-beb884bad218
  1. Stop monitoring this Task with update_request: cancel.

    tab="Input"
    curl -X POST https://api.parallel.ai/v0/tasks/0146b432-c081-430b-bb82-56c114499bb1/runs/dd6bf947-6105-43e4-b5c7-beb884bad218/update \
    -H "x-api-key: $PARALLEL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '
    {
            "update_request": "cancel"
    }'
    
  2. List all queries that are being monitored, by using GET /v0/tasks/{task_id}/runners/{runner_id}/runs and filtering by the active monitoring runner being used.

Sample Tasks

Monitoring Leadership changes

  • Who is the CEO of ${company}?
  • Who is the chairman of ${company}?

Jobs

  • Is ${company} hiring for roles related to ${programming_language}?
  • Determine if ${company} is hiring for any security, network security, data security, or IT security leadership roles.
  • Is ${company} hiring for RevOps roles?
  • Does ${company} hire for remote roles?

Subprocessor changes

  • Is Anthropic or OpenAI a subprocessor of ${company}?
  • List all cloud providers of ${company}.

Limitations

Today, Active Monitoring does not perform as well where there could be multiple correct answers to the single question, which can result in false positives or false negatives.

To get the most reliable results, tasks should be framed as specifically as possible where a single correct answer likely exists and that information is accessible on the web (e.g., “Is ${XX} a subprocess of ${YY}”).

Examples of unreliable active monitoring tasks:

  • “Who is the VP of Google” - difficult to monitor reliably because there are 100s of VPs.
  • “Find all subprocessors of ${company} and let me know if there are any changes”

Tool Calling is currently not supported for active monitoring.