
Sep 10, 2026
March 19, 2026
The Parallel Task API now supports the ability to chain together context between sequential API calls.

Stateful web research conversations are now available with Task API[Task API](/products/task) interaction IDs, enabling multi-turn, iterative web research across sequential tasks that retain full context and history.
Previously, every Task API call was an independent and contained query. Complex web research questions would return precise, structured responses with full Basis verification[Basis verification](https://docs.parallel.ai/task-api/guides/access-research-basis), but had no concept of persistent sessions. Now, previous Task API runs can be referenced in subsequent calls, enabling more sophisticated and stateful chains of reasoning on deep web research tasks.
Consider a competitive intelligence workflow. For your first task query, you ask: “Map the competitive landscape of autonomous vehicle companies”. The Task API returns well-researched outputs with citations and confidence scores.
Next, you’ll follow up: “_Do a side-by-side comparison of the top two competitors on their technology, product strategy, main suppliers, and major risks.”_
Previously, you'd have needed to input all prior context into the next request yourself, essentially copy-pasting it by re-specifying the relevant inputs and outputs from the last task. With multi-turn, the Task API retains the full research context for a more conversational form-factor.
With Task API Interactions, your follow-up query can now resolve against everything the system already knows from the prior task, producing deeper, more targeted results without the extra work.
_"This new feature makes the Task API both more efficient and capable than before. Agents that use the Task API can now better manage context on deep, long-running queries with multiple threads. We're excited to see how our customers and developer community come up with more difficult tasks for their agents to take on with Parallel."_
_— Utkarsh Srivastava, Head of Engineering_
Statefulness transforms the Task API from an independent tool into a stateful web research sub-agent for your broader agentic system.
Your orchestration agent can delegate an entire research thread to the Task API, asking initial questions, evaluating results, requesting clarification or deeper investigation, and branching into new directions. All within a single persistent context. The Task API handles feedback loops, follow-up queries, and multi-step investigations while your agent focuses on decision-making and workflow logic.
Every task now returns an **_interaction_id_**. Pass this ID into your next task request, and the new task inherits the full tree of context and history from all prior tasks in that thread.
Each task in a thread builds on the full research tree, not just the immediately prior task, but the entire accumulated context. And because you can switch processors between turns, you can allocate compute precisely where it matters: run your initial research on Ultra8x for maximum depth, then follow up on core-fast for fast, targeted refinement. This is especially powerful for human-in-the-loop workflows where a researcher kicks off deep foundational research, reviews the results, and iterates quickly from there.
123456789101112131415161718192021222324import os
from parallel import Parallel
from parallel.types import TaskSpecParam, TextSchemaParam
client = Parallel(api_key=os.environ["PARALLEL_API_KEY"])
# Turn 1: Initial question
run1 = client.task_run.create(
input="Which country won the most Winter Olympics gold medals in 2026?",
processor="lite",
task_spec=TaskSpecParam(output_schema=TextSchemaParam()),
)
result1 = client.task_run.result(run1.run_id, api_timeout=3600)
print(f"Turn 1: {result1.output.content}")
# Turn 2: Follow-up — "they" refers to the country from Turn 1
run2 = client.task_run.create(
input="How many medals did they win?",
processor="lite",
previous_interaction_id=run1.interaction_id,
task_spec=TaskSpecParam(output_schema=TextSchemaParam()),
)
result2 = client.task_run.result(run2.run_id, api_timeout=3600)
print(f"Turn 2: {result2.output.content}")``` import osfrom parallel import Parallelfrom parallel.types import TaskSpecParam, TextSchemaParam client = Parallel(api_key=os.environ["PARALLEL_API_KEY"]) # Turn 1: Initial questionrun1 = client.task_run.create( input="Which country won the most Winter Olympics gold medals in 2026?", processor="lite", task_spec=TaskSpecParam(output_schema=TextSchemaParam()),)result1 = client.task_run.result(run1.run_id, api_timeout=3600)print(f"Turn 1: {result1.output.content}") # Turn 2: Follow-up — "they" refers to the country from Turn 1run2 = client.task_run.create( input="How many medals did they win?", processor="lite", previous_interaction_id=run1.interaction_id, task_spec=TaskSpecParam(output_schema=TextSchemaParam()),)result2 = client.task_run.result(run2.run_id, api_timeout=3600)print(f"Turn 2: {result2.output.content}")``` Try it now under the **Interactions **showcase in Parallel’s developer platform[developer platform](https://platform.parallel.ai/play/interactions).
Learn more in Parallel’s Task API Interactions documentation[Interactions documentation](https://docs.parallel.ai/task-api/guides/interactions).
Sign up for free. No credit card required.
By Parallel
March 19, 2026

Sep 10, 2026

Aug 31, 2026

Aug 29, 2026

Aug 25, 2026

Aug 21, 2026

Aug 19, 2026

Aug 13, 2026

Jul 30, 2026

Jul 21, 2026

Jul 20, 2026

Jul 16, 2026

Jul 15, 2026

Jul 13, 2026

Jul 12, 2026

Jul 10, 2026

Jul 8, 2026

Jun 9, 2026

Jun 5, 2026

Jun 4, 2026

May 20, 2026

May 19, 2026

May 7, 2026

May 5, 2026

Apr 29, 2026

Apr 29, 2026

Apr 24, 2026

Apr 23, 2026

Apr 21, 2026

Apr 20, 2026

Apr 8, 2026

Apr 8, 2026

Apr 7, 2026

Mar 30, 2026

Mar 25, 2026

Mar 18, 2026

Mar 17, 2026

Mar 10, 2026

Mar 4, 2026

Mar 2, 2026

Feb 23, 2026

Feb 4, 2026

Jan 28, 2026

Jan 21, 2026

Jan 15, 2026

Jan 8, 2026

Dec 17, 2025

Dec 16, 2025

Dec 11, 2025

Dec 10, 2025

Nov 20, 2025

Nov 18, 2025

Nov 13, 2025

Nov 12, 2025

Nov 11, 2025

Nov 6, 2025

Nov 3, 2025

Oct 30, 2025

Oct 23, 2025

Oct 22, 2025

Oct 17, 2025

Oct 16, 2025

Oct 9, 2025

Oct 8, 2025

Oct 7, 2025

Oct 6, 2025

Sep 30, 2025

Sep 16, 2025

Sep 12, 2025

Sep 11, 2025

Sep 9, 2025

Sep 5, 2025

Aug 21, 2025

Aug 14, 2025

Aug 7, 2025

Aug 5, 2025

Aug 4, 2025

Jul 31, 2025

Jul 31, 2025

Jul 28, 2025

Jul 14, 2025

Jul 8, 2025

Jul 2, 2025

Jun 17, 2025

Jun 10, 2025

May 30, 2025

May 16, 2025

Apr 24, 2025