Parallel AI

App · AI Search & Memory · 17 actions

Search the web and images, read pages as clean markdown, get cited answers, run deep research, build verified lists of companies and people, and keep watching the web for changes, using Parallel's APIs built for AI agents.

Actions

ActionWhat it does
Ask a questionAsk Parallel a question and get a written answer researched on the live web, with the sources it cites, in about 5 to 60 seconds.
Cancel a FindAll runStop a FindAll run that is still going, so it finds and bills no more matches.
Cancel a monitorStop a monitor for good.
Check a FindAll runCheck a FindAll run by its ID and get the matches found so far.
Check a research taskCheck a research task by its run ID and get the result once it has finished.
Create a monitorHave Parallel keep watching the web for something, such as news about a company or a price change, and record each new development as an event.
Find all matching companies or peopleDescribe the companies, people or other things you want in a sentence and Parallel builds the list from the web, checking every candidate against each of your conditions and citing its sources.
Get a monitorGet one monitor's settings and status, and for a monitor that re-checks a research task, its latest answer.
List monitor eventsList what a monitor has found, newest first: each new development with its sources, or, for a monitor that re-checks a research task, which parts of the answer changed.
List monitorsList your Parallel monitors, newest first.
Read web pagesRead one or more web pages and get them back as clean markdown: either the passages that matter for your objective, or the whole page.
Run a monitor nowHave a monitor check the web now, outside its schedule.
Run a research taskHand Parallel a research question and get back a researched answer with citations, reasoning, and per-field confidence.
Search companies or peopleGet a ranked list of companies or people matching a description in a few seconds, each with a web address and a short description.
Search imagesSearch the web for images and get each one's direct link, size, and the page it appears on.
Search the webSearch the web with Parallel and get ranked pages with long, relevant excerpts already pulled out of each one.
Update a monitorChange how often a monitor checks, its processor, its webhook, or (for small wording changes) what it watches for.

Ask a question

Ask Parallel a question and get a written answer researched on the live web, with the sources it cites, in about 5 to 60 seconds. Quicker than a research task; use a research task when the question needs deep, multi-step research or per-field confidence.

Inputs

QuestionquestiontextRequired
The question, written so it stands on its own, for example, 'Which G7 country has the highest corporate tax rate this year?'.
Research effortreasoning_efforttext
How much research Parallel does before answering. 'Low' suits simple facts (about 5-10 seconds), 'Medium' questions that need a few lookups (about 15-20 seconds), and 'High' questions that need broad research and synthesis (up to a minute, and the most expensive).One of: low (Low (simple facts)), medium (Medium (recommended)), high (High (deep questions)). Default: medium.
Instructionsinstructionstext
Optional guidance on how to answer, for example, 'Answer in two sentences' or 'Give amounts in euros'.
Answer format (JSON Schema)output_schematext
Optional JSON Schema the answer must follow, so later steps can read each field, for example '{"type": "object", "properties": {"capital": {"type": "string"}, "population": {"type": "integer"}}, "required": ["capital", "population"], "additionalProperties": false}'. Leave blank for a written answer.
Websites to includeinclude_domainslist
Only use sources from these websites (for example, sec.gov or nytimes.com). A bare extension such as .edu or .gov also works. Leave blank to search the whole web.
Websites to excludeexclude_domainslist
Leave out sources from these websites (for example, reddit.com or pinterest.com).
Follow up onprevious_response_idtext
To ask a follow-up, the response ID an earlier 'Ask a question' step returned. The question can then say 'its population' or 'the second one' without restating what came before.

Outputs

answerobject
The answer: text, or an object following the answer format when one was given.
citation_countnumber
How many sources the answer cites.
citationslist
The sources behind the answer, each with its web address, title, and the parts of the answer it supports.
output_typetext
Whether the answer is 'text' or 'json'.
pages_readlist
The web pages Parallel opened to answer.
response_idtext
Parallel's ID for this answer. Pass it to another 'Ask a question' step as 'Follow up on'.
search_querieslist
The searches Parallel ran to answer.
statustext
'completed', or 'incomplete' if cut short.
Example output
{
  "answer": "France has the highest headline corporate tax rate in the G7 this year, at 25.8%.",
  "citation_count": 1,
  "citations": [
    {
      "cited_text": [
        "France has the highest headline corporate tax rate"
      ],
      "title": "Corporate tax rates in the G7",
      "url": "https://example.com/g7-corporate-tax-rates"
    }
  ],
  "output_type": "text",
  "pages_read": [
    "https://example.com/g7-corporate-tax-rates"
  ],
  "response_id": "resp_a0fa0e42fa1b4bf0ae62baca311fd5b6",
  "search_queries": [
    "G7 corporate tax rates 2026"
  ],
  "status": "completed"
}

Cancel a FindAll run

Stop a FindAll run that is still going, so it finds and bills no more matches. A run that has already finished is left as it is, and the step still succeeds.

Inputs

FindAll run IDfindall_idtextRequired
The FindAll run's ID, as returned by 'Find all matching companies or people', for example, 'findall_40e0ab8c10754be0b7a16477abb38a2f'.

Outputs

already_finishedtrue/false
True when the run had already finished, so there was nothing to stop.
cancelledtrue/false
True when this step stopped the run.
findall_idtext
The FindAll run's ID.
Example output
{
  "already_finished": false,
  "cancelled": true,
  "findall_id": "findall_40e0ab8c10754be0b7a16477abb38a2f"
}

Cancel a monitor

Stop a monitor for good. This can't be undone: to start watching again, create a new monitor. Its past events stay readable.

Inputs

Monitor IDmonitor_idtextRequired
The monitor's ID, as returned by 'Create a monitor' or 'List monitors', for example, 'monitor_b0079f70195e4258a3b982c1b6d8bd3a'.

Outputs

created_attext
When it was created.
frequencytext
How often it runs.
include_backfilltrue/false
Whether its first run reported recent past events.
last_run_attext
When it last ran.
latest_snapshotobject
For a snapshot monitor, the latest answer to the research task: text, or an object with the task's fields.
latest_snapshot_typetext
Whether the latest snapshot is 'text' or 'json'.
monitor_idtext
The monitor's ID.
processortext
The processor it runs on.
querytext
What the monitor watches the web for.
statustext
Whether the monitor is 'active' or 'cancelled'.
task_run_idtext
For a snapshot monitor, the research task it re-checks.
typetext
'event_stream' for a monitor that watches a query, 'snapshot' for one that keeps re-checking a research task's answer.
webhook_urltext
Where it reports new events, if anywhere.
Example output
{
  "created_at": "2026-10-14T09:00:00Z",
  "frequency": "1d",
  "include_backfill": false,
  "last_run_at": "2026-10-14T09:00:05Z",
  "latest_snapshot": null,
  "latest_snapshot_type": null,
  "monitor_id": "monitor_b0079f70195e4258a3b982c1b6d8bd3a",
  "processor": "lite",
  "query": "Funding rounds announced by open source vector database companies",
  "status": "cancelled",
  "task_run_id": null,
  "type": "event_stream",
  "webhook_url": null
}

Check a FindAll run

Check a FindAll run by its ID and get the matches found so far. Use it to collect a run that outlasted the wait on 'Find all matching companies or people'.

Inputs

FindAll run IDfindall_idtextRequired
The FindAll run's ID, as returned by 'Find all matching companies or people', for example, 'findall_40e0ab8c10754be0b7a16477abb38a2f'.

Outputs

candidate_countnumber
How many candidates have been evaluated so far.
completedtrue/false
Whether the run has finished searching.
entity_typetext
What kind of entity the run looked for.
findall_idtext
Parallel's ID for this FindAll run. Pass it to 'Check a FindAll run' to collect more matches later.
generated_countnumber
How many candidates the run has considered.
generatortext
The generator tier the run used.
match_conditionslist
The conditions every match had to meet, each with a name and a description.
match_countnumber
How many matches so far.
matcheslist
The entities that met every condition, each with its name, web address, description, the value found for each condition (under 'fields'), and the sources behind them.
statustext
The run's status: queued, running, completed, failed, cancelling, or cancelled.
termination_reasontext
Why a finished run stopped, such as match_limit_met or candidates_exhausted.
timed_outtrue/false
True when the wait ran out before the run finished. It keeps going on Parallel's side.
Example output
{
  "candidate_count": 3,
  "completed": false,
  "entity_type": null,
  "findall_id": "findall_40e0ab8c10754be0b7a16477abb38a2f",
  "generated_count": 3,
  "generator": "core",
  "match_conditions": null,
  "match_count": 1,
  "matches": [
    {
      "candidate_id": "candidate_a062dd17-d77a-4b1b-ad0e-de113e82f838",
      "citations": [
        {
          "excerpts": [
            "Qdrant today announced a $28M Series A..."
          ],
          "field": "condition_2",
          "title": "Qdrant raises $28M",
          "url": "https://qdrant.tech/blog/series-a"
        }
      ],
      "description": "Open source vector database and similarity search engine.",
      "fields": {
        "condition_1": "Qdrant is released under the Apache 2.0 license.",
        "condition_2": "Raised a $28M Series A in January 2024."
      },
      "match_status": "matched",
      "name": "Qdrant",
      "url": "https://qdrant.tech"
    }
  ],
  "status": "running",
  "termination_reason": null,
  "timed_out": false
}

Check a research task

Check a research task by its run ID and get the result once it has finished. Use this to collect a long Pro or Ultra run that outlasted the wait on 'Run a research task'.

Inputs

Run IDrun_idtextRequired
The research run's ID, as returned by 'Run a research task', for example, 'trun_9f2c1b4e6a7d4f8b9c0d1e2f3a4b5c6d'.

Outputs

basislist
Parallel's reasoning and confidence for each field of the output.
citation_countnumber
How many sources the answer cites.
citationslist
The sources behind the answer.
completedtrue/false
Whether the research finished and an output is included.
interaction_idtext
Pass this to another research task as 'Follow up on' to build on this research.
outputobject
The researched answer, once the run has completed.
output_typetext
Whether the output is 'text' or 'json'.
processortext
The processor tier the run used.
run_idtext
Parallel's ID for this research run.
statustext
The run's status: queued, running, completed, failed, cancelled, or action_required.
timed_outtrue/false
Always false here: this step doesn't wait.
warningslist
Anything Parallel flagged about the request, such as a setting it adjusted.
Example output
{
  "basis": [],
  "citation_count": 0,
  "citations": [],
  "completed": false,
  "interaction_id": "trun_9f2c1b4e6a7d4f8b9c0d1e2f3a4b5c6d",
  "output": null,
  "output_type": null,
  "processor": "pro",
  "run_id": "trun_9f2c1b4e6a7d4f8b9c0d1e2f3a4b5c6d",
  "status": "running",
  "timed_out": false,
  "warnings": []
}

Create a monitor

Have Parallel keep watching the web for something, such as news about a company or a price change, and record each new development as an event. It checks once straight away and then on your schedule; each check is billed.

Inputs

What to watch forquerytext
What to look out for, written as a request, for example, 'New funding rounds announced by open source vector database companies'. Leave blank only when re-checking a research task below.
FrequencyfrequencytextRequired
How often the monitor checks the web: a number and a unit, h for hours, d for days or w for weeks, such as 6h, 1d or 1w. Anything from 1h to 30d.Default: 1d.
Processorprocessortext
'Lite' suits a narrow topic such as one company; 'Base' a wide one such as a whole industry or region, and costs more per check.One of: lite (Lite (narrow topics, cheaper)), base (Base (broad topics, more thorough)). Default: lite.
Include recent past eventsinclude_backfilltrue/false
Have the first check also report a sample of recent events from before the monitor was created. Otherwise only new developments are reported.Default: false.
Event format (JSON Schema)output_schematext
Optional JSON Schema each event must follow, so later steps can read its fields, for example '{"type": "object", "properties": {"company": {"type": "string"}, "amount": {"type": "string"}}}'. Leave blank for a written description of each event.
Websites to includeinclude_domainslist
Only use sources from these websites (for example, sec.gov or nytimes.com). A bare extension such as .edu or .gov also works. Leave blank to search the whole web.
Websites to excludeexclude_domainslist
Leave out sources from these websites (for example, reddit.com or pinterest.com).
Countrylocationtext
Favor results from one country, as a two-letter country code such as us, gb, de or jp. Leave blank for no preference.
Webhook URLwebhook_urltext
Optional web address Parallel calls when the monitor finds something new or a run fails. Leave blank to read events with 'List monitor events'.
Re-check a research tasktask_run_idtext
Instead of a query: the run ID of a finished research task. The monitor re-runs it on the schedule and reports which parts of its answer changed. The event format, websites and country settings don't apply.

Outputs

created_attext
When it was created.
frequencytext
How often it runs.
include_backfilltrue/false
Whether its first run reported recent past events.
last_run_attext
When it last ran.
latest_snapshotobject
For a snapshot monitor, the latest answer to the research task: text, or an object with the task's fields.
latest_snapshot_typetext
Whether the latest snapshot is 'text' or 'json'.
monitor_idtext
The monitor's ID.
processortext
The processor it runs on.
querytext
What the monitor watches the web for.
statustext
Whether the monitor is 'active' or 'cancelled'.
task_run_idtext
For a snapshot monitor, the research task it re-checks.
typetext
'event_stream' for a monitor that watches a query, 'snapshot' for one that keeps re-checking a research task's answer.
webhook_urltext
Where it reports new events, if anywhere.
Example output
{
  "created_at": "2026-10-14T09:00:00Z",
  "frequency": "1d",
  "include_backfill": false,
  "last_run_at": "2026-10-14T09:00:05Z",
  "latest_snapshot": null,
  "latest_snapshot_type": null,
  "monitor_id": "monitor_b0079f70195e4258a3b982c1b6d8bd3a",
  "processor": "lite",
  "query": "Funding rounds announced by open source vector database companies",
  "status": "active",
  "task_run_id": null,
  "type": "event_stream",
  "webhook_url": null
}

Find all matching companies or people

Describe the companies, people or other things you want in a sentence and Parallel builds the list from the web, checking every candidate against each of your conditions and citing its sources. Runs take from a few minutes to much longer; a run still going when the wait ends hands back an ID to collect later.

Inputs

What to findobjectivetextRequired
What to find, as one sentence with every condition in it, for example, 'Fintech companies in Brazil that offer earned-wage access' or 'AI infrastructure startups that raised a Series B in the last 6 months'.
Generatorgeneratortext
How hard Parallel looks, which sets the price. 'Let Parallel choose' picks the tier that suits the query. 'Preview' checks about ten candidates to test a query cheaply; 'Base' suits broad queries with many matches; 'Core' specific ones; 'Pro' rare, hard-to-find matches.One of: auto (Let Parallel choose), preview (Preview (test a query)), base (Base (broad queries)), core (Core (specific queries)), pro (Pro (rare matches)). Default: auto.
Maximum matchesmatch_limitnumber
Stop once this many matches are found, from 5 to 1000. Each match is billed, so start small. A preview checks at most 10 candidates.From 5 to 1000. Default: 10.
Conditionsmatch_conditionslist
Optional: the conditions every match must meet, one sentence each, for example, 'Headquartered in Brazil' and 'Offers earned-wage access to employers'. Leave blank and Parallel works them out from 'What to find'.
Kind of thing to findentity_typetext
Optional: what kind of thing each match is, such as companies, people or products. Leave blank and Parallel works it out.
How long to waitmax_wait_secondsnumber
How long this step waits for the run to finish, in seconds (default 300, maximum 900). If it is still going, the step succeeds with the matches so far and the run's ID, so use 'Check a FindAll run' later for the rest.From 1 to 900. Default: 300.

Outputs

candidate_countnumber
How many candidates have been evaluated so far.
completedtrue/false
Whether the run has finished searching.
entity_typetext
What kind of entity the run looked for.
findall_idtext
Parallel's ID for this FindAll run. Pass it to 'Check a FindAll run' to collect more matches later.
generated_countnumber
How many candidates the run has considered.
generatortext
The generator tier the run used.
match_conditionslist
The conditions every match had to meet, each with a name and a description.
match_countnumber
How many matches so far.
matcheslist
The entities that met every condition, each with its name, web address, description, the value found for each condition (under 'fields'), and the sources behind them.
statustext
The run's status: queued, running, completed, failed, cancelling, or cancelled.
termination_reasontext
Why a finished run stopped, such as match_limit_met or candidates_exhausted.
timed_outtrue/false
True when the wait ran out before the run finished. It keeps going on Parallel's side.
Example output
{
  "candidate_count": 8,
  "completed": true,
  "entity_type": "companies",
  "findall_id": "findall_40e0ab8c10754be0b7a16477abb38a2f",
  "generated_count": 8,
  "generator": "base",
  "match_conditions": [
    {
      "description": "Builds an open source vector database.",
      "name": "condition_1"
    },
    {
      "description": "Has raised venture funding.",
      "name": "condition_2"
    }
  ],
  "match_count": 1,
  "matches": [
    {
      "candidate_id": "candidate_a062dd17-d77a-4b1b-ad0e-de113e82f838",
      "citations": [
        {
          "excerpts": [
            "Qdrant today announced a $28M Series A..."
          ],
          "field": "condition_2",
          "title": "Qdrant raises $28M",
          "url": "https://qdrant.tech/blog/series-a"
        }
      ],
      "description": "Open source vector database and similarity search engine.",
      "fields": {
        "condition_1": "Qdrant is released under the Apache 2.0 license.",
        "condition_2": "Raised a $28M Series A in January 2024."
      },
      "match_status": "matched",
      "name": "Qdrant",
      "url": "https://qdrant.tech"
    }
  ],
  "status": "completed",
  "termination_reason": "match_limit_met",
  "timed_out": false
}

Get a monitor

Get one monitor's settings and status, and for a monitor that re-checks a research task, its latest answer.

Inputs

Monitor IDmonitor_idtextRequired
The monitor's ID, as returned by 'Create a monitor' or 'List monitors', for example, 'monitor_b0079f70195e4258a3b982c1b6d8bd3a'.

Outputs

created_attext
When it was created.
frequencytext
How often it runs.
include_backfilltrue/false
Whether its first run reported recent past events.
last_run_attext
When it last ran.
latest_snapshotobject
For a snapshot monitor, the latest answer to the research task: text, or an object with the task's fields.
latest_snapshot_typetext
Whether the latest snapshot is 'text' or 'json'.
monitor_idtext
The monitor's ID.
processortext
The processor it runs on.
querytext
What the monitor watches the web for.
statustext
Whether the monitor is 'active' or 'cancelled'.
task_run_idtext
For a snapshot monitor, the research task it re-checks.
typetext
'event_stream' for a monitor that watches a query, 'snapshot' for one that keeps re-checking a research task's answer.
webhook_urltext
Where it reports new events, if anywhere.
Example output
{
  "created_at": "2026-10-14T09:00:00Z",
  "frequency": "1d",
  "include_backfill": false,
  "last_run_at": "2026-10-14T09:00:05Z",
  "latest_snapshot": null,
  "latest_snapshot_type": null,
  "monitor_id": "monitor_b0079f70195e4258a3b982c1b6d8bd3a",
  "processor": "lite",
  "query": "Funding rounds announced by open source vector database companies",
  "status": "active",
  "task_run_id": null,
  "type": "event_stream",
  "webhook_url": null
}

List monitor events

List what a monitor has found, newest first: each new development with its sources, or, for a monitor that re-checks a research task, which parts of the answer changed.

Inputs

Monitor IDmonitor_idtextRequired
The monitor's ID, as returned by 'Create a monitor' or 'List monitors', for example, 'monitor_b0079f70195e4258a3b982c1b6d8bd3a'.
Maximum eventslimitnumber
How many events to list, up to 100.From 1 to 100. Default: 20.
Include quiet checksinclude_completionstrue/false
Also list the checks that found nothing new, to see when the monitor ran. Failed checks are always listed.Default: false.
Event group IDevent_group_idtext
Optional: list only the events from one check, by the event group ID a webhook or an earlier listing gave.
Next cursorcursortext
To list older events, the next cursor an earlier 'List monitor events' step returned.

Outputs

event_countnumber
How many events were listed.
eventslist
The events, newest first. Each has an event_type ('event_stream' for a new development, 'snapshot' for a changed answer, 'completion' for a quiet check, 'error' for a failed one), its date, the output describing it, and its citations.
next_cursortext
Pass this as 'Next cursor' to list older events; empty when there are no more.
warningslist
Anything Parallel flagged about the request, such as a setting it adjusted.
Example output
{
  "event_count": 1,
  "events": [
    {
      "citations": [
        {
          "excerpts": [],
          "field": "output",
          "title": "Qdrant raises $50M",
          "url": "https://example.com/qdrant-series-b"
        }
      ],
      "error_message": null,
      "event_date": "2026-10-13",
      "event_group_id": "mevtgrp_2d4f6a8c0e1b3d5f",
      "event_id": "mevt_6b1f0e2a9c3d4e5f",
      "event_type": "event_stream",
      "output": "Qdrant announced a $50M Series B.",
      "output_type": "text",
      "previous_output": null,
      "timestamp": null
    }
  ],
  "next_cursor": null,
  "warnings": []
}

List monitors

List your Parallel monitors, newest first.

Inputs

Showstatustext
Which monitors to list.One of: active (Active monitors), cancelled (Cancelled monitors), all (All monitors). Default: active.
Maximum monitorslimitnumber
How many to list, up to 1000.From 1 to 1000. Default: 50.
Next cursorcursortext
To list the next page, the next cursor an earlier 'List monitors' step returned.

Outputs

monitor_countnumber
How many monitors were listed.
monitorslist
The monitors, newest first.
next_cursortext
Pass this as 'Next cursor' to list more; empty when there are no more.
Example output
{
  "monitor_count": 1,
  "monitors": [
    {
      "created_at": "2026-10-14T09:00:00Z",
      "frequency": "1d",
      "include_backfill": false,
      "last_run_at": "2026-10-14T09:00:05Z",
      "latest_snapshot": null,
      "latest_snapshot_type": null,
      "monitor_id": "monitor_b0079f70195e4258a3b982c1b6d8bd3a",
      "processor": "lite",
      "query": "Funding rounds announced by open source vector database companies",
      "status": "active",
      "task_run_id": null,
      "type": "event_stream",
      "webhook_url": null
    }
  ],
  "next_cursor": null
}

Read web pages

Read one or more web pages and get them back as clean markdown: either the passages that matter for your objective, or the whole page.

Inputs

Web page addressesurlslistRequired
The web addresses (URLs) of the pages to read, such as those from an earlier search. Up to 20 at a time. Pass a list even when there is only one page.
Objectiveobjectivetext
What you want out of these pages, so Parallel can pick the passages that matter. Leave blank to get a general read of each page.
Keywords to look forsearch_querieslist
Optional short keyword queries used alongside the objective to pick which passages of each page are worth returning.
Return the whole pagefull_contenttrue/false
Return each page in full instead of just the relevant passages. Leave off unless a later step needs the entire page; excerpts are usually enough and far shorter.Default: false.
Character limit per pagemax_chars_per_resultnumber
Trim each page to roughly this many characters. Leave blank to let Parallel decide.At least 1.
Total character limitmax_chars_totalnumber
Cap the excerpts across all pages at roughly this many characters. Leave blank for no overall cap.At least 1.
Refresh pages older than (seconds)max_age_secondsnumber
Fetch a page live when Parallel's copy of it is older than this many seconds (at least 600, which is ten minutes). Use it when the step needs up-to-the-minute content such as prices or scores; it makes the step noticeably slower. Leave blank to let Parallel decide.At least 600.
Session IDsession_idtext
The session ID an earlier search or page read returned. Passing it tells Parallel the calls belong to the same task, which can sharpen the results. Leave blank to start a new session.

Outputs

error_countnumber
How many pages could not be read.
errorslist
The pages that could not be read: each with its web address, the kind of error, the HTTP status, and the start of what the site sent back.
extract_idtext
Parallel's ID for this read.
result_countnumber
How many pages were read.
resultslist
One entry per page that could be read, with its excerpts and, when requested, its full content.
session_idtext
Session ID tying related searches and page reads together. Pass it to a later search or page read that belongs to the same task.
warningslist
Anything Parallel flagged about the request, such as a setting it adjusted.
Example output
{
  "error_count": 0,
  "errors": [],
  "extract_id": "extract_cad0a6d2dec046bd95ae900527d880e7",
  "result_count": 1,
  "results": [
    {
      "excerpts": [
        "The entry tier bills at $0.034 per..."
      ],
      "full_content": null,
      "publish_date": "2026-05-14",
      "title": "Managed Postgres pricing, compared",
      "url": "https://example.com/managed-postgres-pricing"
    }
  ],
  "session_id": "session_fcb2b4f3c75e418687bccaa1a8381331",
  "warnings": []
}

Run a monitor now

Have a monitor check the web now, outside its schedule. Its schedule is unchanged, and the check is billed like any other. Anything new appears in 'List monitor events' once it finishes.

Inputs

Monitor IDmonitor_idtextRequired
The monitor's ID, as returned by 'Create a monitor' or 'List monitors', for example, 'monitor_b0079f70195e4258a3b982c1b6d8bd3a'.

Outputs

monitor_idtext
The monitor's ID.
triggeredtrue/false
True once Parallel has queued the check.
Example output
{
  "monitor_id": "monitor_b0079f70195e4258a3b982c1b6d8bd3a",
  "triggered": true
}

Run a research task

Hand Parallel a research question and get back a researched answer with citations, reasoning, and per-field confidence. Parallel plans the search, reads the sources, and returns structured output.

Inputs

Research questionobjectivetextRequired
What to research, written as a self-contained request, for example, 'Summarize how each major cloud provider prices managed Postgres, and note the cheapest entry tier'.
Processorprocessortext
How much research to do. 'Base' suits most questions (about a minute). The higher tiers read more sources and reason further but take much longer and cost more: Pro and Ultra take several minutes, and the Ultra 2x, 4x and 8x tiers can run for up to two hours. A run that outlasts the wait below hands back a run ID to collect later with 'Check a research task'.One of: lite (Lite (fastest, cheapest)), base (Base (recommended)), core (Core (more thorough)), core2x (Core 2x (complex questions)), pro (Pro (deep research, slow)), ultra (Ultra (deeper research)), ultra2x (Ultra 2x (difficult research)), ultra4x (Ultra 4x (very difficult research)), ultra8x (Ultra 8x (hardest research, up to 2 hours)). Default: base.
Describe the output you wantoutput_schematext
Plain-language description of what the answer should contain, for example 'A one-paragraph summary plus a list of providers with their entry price'. Leave blank to let Parallel choose the shape. A JSON Schema can be pasted here instead to pin the exact fields.
Websites to includeinclude_domainslist
Only use sources from these websites (for example, sec.gov or nytimes.com). A bare extension such as .edu or .gov also works. Leave blank to search the whole web.
Websites to excludeexclude_domainslist
Leave out sources from these websites (for example, reddit.com or pinterest.com).
Published afterafter_datedate
Only use pages published on or after this date, in YYYY-MM-DD format. Useful for keeping research to recent sources.
How long to waitmax_wait_secondsnumber
How long this step waits for the research to finish, in seconds (default 300, maximum 900). If the run is still going when the wait runs out, the step succeeds and returns its run ID, so use 'Check a research task' later to collect the result.From 1 to 900. Default: 300.
Follow up onprevious_interaction_idtext
To ask a follow-up question, the interaction ID an earlier research task returned. Parallel then builds on that research, so the question can say 'these companies' or 'the second one' without restating it. Leave blank for a fresh question.
Countrylocationtext
Favor results from one country, as a two-letter country code such as us, gb, de or jp. Leave blank for no preference.

Outputs

basislist
Parallel's reasoning and confidence for each field of the output.
citation_countnumber
How many sources the answer cites.
citationslist
The sources behind the answer, each with its web address and the output field it supports.
completedtrue/false
Whether the research finished and an output is included.
interaction_idtext
Pass this to another research task as 'Follow up on' to ask a follow-up question that builds on this research.
outputobject
The researched answer: text when no shape was requested, otherwise a structured object.
output_typetext
Whether the output is 'text' or 'json'.
processortext
The processor tier the run used.
run_idtext
Parallel's ID for this research run. Pass it to 'Check a research task' to collect a result later.
statustext
The run's status: queued, running, completed, failed, cancelled, or action_required.
timed_outtrue/false
True when the wait ran out before the research finished. The run keeps going on Parallel's side.
warningslist
Anything Parallel flagged about the request, such as a setting it adjusted.
Example output
{
  "basis": [
    {
      "confidence": "high",
      "field": "output",
      "reasoning": "Compared the published price pages for each provider."
    }
  ],
  "citation_count": 1,
  "citations": [
    {
      "excerpts": [
        "The entry tier bills at $0.034 per..."
      ],
      "field": "output",
      "title": "Managed Postgres pricing, compared",
      "url": "https://example.com/managed-postgres-pricing"
    }
  ],
  "completed": true,
  "interaction_id": "trun_9f2c1b4e6a7d4f8b9c0d1e2f3a4b5c6d",
  "output": "Managed Postgres entry pricing lands between $0.03 and $0.05 per vCPU-hour across the major providers.",
  "output_type": "text",
  "processor": "base",
  "run_id": "trun_9f2c1b4e6a7d4f8b9c0d1e2f3a4b5c6d",
  "status": "completed",
  "timed_out": false,
  "warnings": []
}

Search companies or people

Get a ranked list of companies or people matching a description in a few seconds, each with a web address and a short description. Quick and broad; use 'Find all matching companies or people' when every result must be checked against your criteria.

Inputs

Who to findobjectivetextRequired
A description of the companies or people you want, for example, 'Climate tech startups in Berlin' or 'Heads of engineering at Series B fintech companies'.
Search forentity_typetextRequired
Whether to find companies or people.One of: companies, people. Default: companies.
Number of resultsmatch_limitnumber
How many to return, from 5 to 1000. Parallel may return fewer.From 5 to 1000. Default: 25.

Outputs

entitieslist
The companies or people, best match first, each with a name, web address, and description.
entity_countnumber
How many were returned.
entity_set_idtext
Parallel's ID for this search.
entity_typetext
'companies' or 'people'.
Example output
{
  "entities": [
    {
      "description": "Berlin-based company building an open source vector database.",
      "name": "Qdrant",
      "url": "https://qdrant.tech"
    }
  ],
  "entity_count": 1,
  "entity_set_id": "entity_set_cad0a6d2dec046bd95ae900527d880e7",
  "entity_type": "companies"
}

Search images

Search the web for images and get each one's direct link, size, and the page it appears on.

Inputs

Search queriessearch_querieslistRequired
Up to 5 short keyword queries, for example, 'Eames lounge chair' and 'Eames lounge chair product photo'.
Objectiveobjectivetext
Optional description of the images you want, for example, 'Product photos of the Eames lounge chair on a white background'. Parallel uses it to rank the results.
Search modemodetext
'Advanced' gives the best results (about 3 seconds); 'Fast' is quicker and a fifth of the price.One of: advanced (Advanced (best quality)), fast (Fast (quick and cheaper)). Default: advanced.
Number of imagesmax_resultsnumber
How many images to return, up to 20.From 1 to 20. Default: 10.
Countrylocationtext
Favor results from one country, as a two-letter country code such as us, gb, de or jp. Leave blank for no preference.
Session IDsession_idtext
The session ID an earlier search or page read returned. Passing it tells Parallel the calls belong to the same task, which can sharpen the results. Leave blank to start a new session.

Outputs

result_countnumber
How many images were returned.
resultslist
The images, most relevant first, each with its title, direct image address (image_url), the page it appears on (source_page_url), and its width and height when known.
search_idtext
Parallel's ID for this search.
session_idtext
Session ID tying related searches together.
warningslist
Anything Parallel flagged about the request, such as a setting it adjusted.
Example output
{
  "result_count": 1,
  "results": [
    {
      "height": 1200,
      "image_url": "https://example.com/images/eames-lounge.jpg",
      "source_page_url": "https://example.com/eames-lounge-chair",
      "title": "Eames lounge chair and ottoman",
      "width": 1600
    }
  ],
  "search_id": "search_cad0a6d2dec046bd95ae900527d880e7",
  "session_id": "session_8a911eb27c7a4afaa20d0d9dc98d07c0",
  "warnings": []
}

Search the web

Search the web with Parallel and get ranked pages with long, relevant excerpts already pulled out of each one.

Inputs

Search queriessearch_querieslistRequired
Short keyword queries, 3-6 words each. Two or three give the best results, for example, 'managed Postgres pricing' and 'cloud database price per hour'.
Objectiveobjectivetext
What you are trying to find out, written as a self-contained sentence or two, for example, 'Find the latest published pricing for each major cloud provider's managed Postgres offering'. Parallel uses this to judge which parts of each page matter.
Search modemodetext
How much work Parallel puts into the search. 'Advanced' is the best quality and the default (about 3 seconds); 'Basic' returns longer excerpts in about a second and works well with two or three sharp queries; 'Fast' gives good results in under a second at a fifth of the price; 'Turbo' is the quickest and cheapest, for simple lookups in English or Japanese.One of: advanced (Advanced (best quality)), basic (Basic (longer excerpts)), fast (Fast (quick and cheaper)), turbo (Turbo (fastest, cheapest)). Default: advanced.
Number of resultsmax_resultsnumber
How many pages to return, up to 40. Defaults to 10.From 1 to 40. Default: 10.
Websites to includeinclude_domainslist
Only use sources from these websites (for example, sec.gov or nytimes.com). A bare extension such as .edu or .gov also works. Leave blank to search the whole web.
Websites to excludeexclude_domainslist
Leave out sources from these websites (for example, reddit.com or pinterest.com).
Published afterafter_datedate
Only use pages published on or after this date, in YYYY-MM-DD format. Useful for keeping research to recent sources.
Character limit per pagemax_chars_per_resultnumber
Trim each page's excerpts to roughly this many characters. Leave blank to let Parallel decide.At least 1.
Total character limitmax_chars_totalnumber
Cap the excerpts across all pages at roughly this many characters, to keep the result small enough for a later AI step. Leave blank for no overall cap.At least 1.
Countrylocationtext
Favor results from one country, as a two-letter country code such as us, gb, de or jp. Leave blank for no preference.
Refresh pages older than (seconds)max_age_secondsnumber
Fetch a page live when Parallel's copy of it is older than this many seconds (at least 600, which is ten minutes). Use it when the step needs up-to-the-minute content such as prices or scores; it makes the step noticeably slower. Leave blank to let Parallel decide.At least 600.
Session IDsession_idtext
The session ID an earlier search or page read returned. Passing it tells Parallel the calls belong to the same task, which can sharpen the results. Leave blank to start a new session.

Outputs

result_countnumber
How many pages were returned.
resultslist
The matching pages, most relevant first, each with its web address, title, publish date, and excerpts.
search_idtext
Parallel's ID for this search.
session_idtext
Session ID tying related searches and page reads together. Pass it to a later search or page read that belongs to the same task.
warningslist
Anything Parallel flagged about the request, such as a setting it adjusted.
Example output
{
  "result_count": 1,
  "results": [
    {
      "excerpts": [
        "Managed Postgres starts at $0.034 per vCPU-hour..."
      ],
      "publish_date": "2026-05-14",
      "title": "Managed Postgres pricing, compared",
      "url": "https://example.com/managed-postgres-pricing"
    }
  ],
  "search_id": "search_fcb2b4f3c75e418687bccaa1a8381331",
  "session_id": "session_fcb2b4f3c75e418687bccaa1a8381331",
  "warnings": []
}

Update a monitor

Change how often a monitor checks, its processor, its webhook, or (for small wording changes) what it watches for. Fields left blank stay as they are.

Inputs

Monitor IDmonitor_idtextRequired
The monitor's ID, as returned by 'Create a monitor' or 'List monitors', for example, 'monitor_b0079f70195e4258a3b982c1b6d8bd3a'.
Frequencyfrequencytext
How often the monitor checks the web: a number and a unit, h for hours, d for days or w for weeks, such as 6h, 1d or 1w. Anything from 1h to 30d.
Processorprocessortext
The processor to use for later checks.One of: lite (Lite (narrow topics, cheaper)), base (Base (broad topics, more thorough)).
What to watch forquerytext
New wording for what the monitor watches. Keep changes small: the monitor compares new findings with what it has already seen, so a different topic belongs in a new monitor.
Webhook URLwebhook_urltext
Optional web address Parallel calls when the monitor finds something new or a run fails. Leave blank to read events with 'List monitor events'.

Outputs

created_attext
When it was created.
frequencytext
How often it runs.
include_backfilltrue/false
Whether its first run reported recent past events.
last_run_attext
When it last ran.
latest_snapshotobject
For a snapshot monitor, the latest answer to the research task: text, or an object with the task's fields.
latest_snapshot_typetext
Whether the latest snapshot is 'text' or 'json'.
monitor_idtext
The monitor's ID.
processortext
The processor it runs on.
querytext
What the monitor watches the web for.
statustext
Whether the monitor is 'active' or 'cancelled'.
task_run_idtext
For a snapshot monitor, the research task it re-checks.
typetext
'event_stream' for a monitor that watches a query, 'snapshot' for one that keeps re-checking a research task's answer.
webhook_urltext
Where it reports new events, if anywhere.
Example output
{
  "created_at": "2026-10-14T09:00:00Z",
  "frequency": "1w",
  "include_backfill": false,
  "last_run_at": "2026-10-14T09:00:05Z",
  "latest_snapshot": null,
  "latest_snapshot_type": null,
  "monitor_id": "monitor_b0079f70195e4258a3b982c1b6d8bd3a",
  "processor": "lite",
  "query": "Funding rounds announced by open source vector database companies",
  "status": "active",
  "task_run_id": null,
  "type": "event_stream",
  "webhook_url": null
}

On this page