Parallel Web Systems Tasks API

The Task API executes web research and extraction tasks. Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences. - Output metadata: citations, excerpts, reasoning, and confidence per field Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling. - Submit hundreds or thousands of Tasks as a single group - Observe group progress and receive results as they complete - Real-time updates via Server-Sent Events (SSE) - Add tasks to an existing group while it is running - Group-level retry and error aggregation

OpenAPI Specification

parallel-web-systems-tasks-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Parallel Chat API (Beta) Chat API (Beta) Tasks API
  description: Parallel API
  contact:
    name: Parallel Support
    url: https://parallel.ai
    email: support@parallel.ai
  version: 0.1.2
servers:
- url: https://api.parallel.ai
  description: Parallel API
security:
- ApiKeyAuth: []
tags:
- name: Tasks
  description: 'The Task API executes web research and extraction tasks. Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.

    - Output metadata: citations, excerpts, reasoning, and confidence per field


    Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.

    - Submit hundreds or thousands of Tasks as a single group

    - Observe group progress and receive results as they complete

    - Real-time updates via Server-Sent Events (SSE)

    - Add tasks to an existing group while it is running

    - Group-level retry and error aggregation'
paths:
  /v1/tasks/groups:
    post:
      tags:
      - Tasks
      summary: Create Task Group
      description: Initiates a TaskGroup to group and track multiple runs.
      operationId: tasks_taskgroups_post_v1_tasks_groups_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskGroupRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskGroupResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-code-samples:
      - lang: Python
        source: 'from parallel import Parallel


          client = Parallel()


          task_group = client.task_group.create(metadata={"key": "value"})

          print(task_group.task_group_id)'
      - lang: TypeScript
        source: "import Parallel from \"parallel-web\";\n\nconst client = new Parallel();\n\nconst taskGroup = await client.taskGroup.create({\n    metadata: {'key': 'value'},\n});\nconsole.log(taskGroup.taskgroup_id);"
  /v1/tasks/groups/{taskgroup_id}:
    get:
      tags:
      - Tasks
      summary: Retrieve Task Group
      description: Retrieves aggregated status across runs in a TaskGroup.
      operationId: tasks_taskgroups_get_v1_tasks_groups__taskgroup_id__get
      parameters:
      - name: taskgroup_id
        in: path
        required: true
        schema:
          type: string
          title: Taskgroup Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskGroupResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-code-samples:
      - lang: Python
        source: 'from parallel import Parallel


          client = Parallel()


          task_group = client.task_group.retrieve("taskgroup_id")

          print(task_group.status)'
      - lang: TypeScript
        source: "import Parallel from \"parallel-web\";\n\nconst client = new Parallel();\n\nconst taskGroup = await client.taskGroup.retrieve(\n    'taskgroup_id',\n);\nconsole.log(taskGroup.status);"
  /v1/tasks/groups/{taskgroup_id}/events:
    get:
      tags:
      - Tasks
      summary: Stream Task Group Events
      description: 'Streams events from a TaskGroup: status updates and run completions.


        The connection will remain open for up to an hour as long as at least one run in the

        group is still active.'
      operationId: tasks_sessions_events_get_v1_tasks_groups__taskgroup_id__events_get
      parameters:
      - name: taskgroup_id
        in: path
        required: true
        schema:
          type: string
          title: Taskgroup Id
      - name: last_event_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Event Id
      - name: timeout
        in: query
        required: false
        schema:
          anyOf:
          - type: number
          - type: 'null'
          title: Timeout
      responses:
        '200':
          description: Successful Response
          content:
            text/event-stream:
              schema:
                oneOf:
                - $ref: '#/components/schemas/TaskGroupStatusEvent'
                - $ref: '#/components/schemas/TaskRunEvent'
                - $ref: '#/components/schemas/ErrorEvent'
                discriminator:
                  propertyName: type
                  mapping:
                    task_group_status: '#/components/schemas/TaskGroupStatusEvent'
                    task_run.state: '#/components/schemas/TaskRunEvent'
                    error: '#/components/schemas/ErrorEvent'
                title: Response 200 Tasks Sessions Events Get V1 Tasks Groups  Taskgroup Id  Events Get
              example:
                type: task_group_status
                event_id: '123'
                status:
                  num_task_runs: 1
                  task_run_status_counts:
                    completed: 1
                  is_active: false
                  status_message: ''
                  modified_at: '2025-04-23T20:21:48.037943Z'
        '404':
          description: TaskGroup not found
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: TaskGroup not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-code-samples:
      - lang: Python
        source: "from parallel import Parallel\n\nclient = Parallel()\n\ntask_group_events = client.task_group.events(\"taskgroup_id\")\nfor event in task_group_events:\n    print(event)\n"
      - lang: TypeScript
        source: "import Parallel from \"parallel-web\";\n\nconst client = new Parallel();\n\nconst taskGroupEvents = await client.taskGroup.events(\n    'taskgroup_id',\n);\nfor await (const event of taskGroupEvents) {\n    console.log(event);\n}\n"
  /v1/tasks/groups/{taskgroup_id}/runs:
    post:
      tags:
      - Tasks
      summary: Add Runs to Task Group
      description: Initiates multiple task runs within a TaskGroup.
      operationId: tasks_taskgroups_runs_post_v1_tasks_groups__taskgroup_id__runs_post
      parameters:
      - name: taskgroup_id
        in: path
        required: true
        schema:
          type: string
          title: Taskgroup Id
      - name: refresh_status
        in: query
        required: false
        schema:
          type: boolean
          default: true
          title: Refresh Status
      - name: parallel-beta
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Parallel-Beta
          x-stainless-override-schema:
            x-stainless-param: betas
            x-stainless-extend-default: true
            type: array
            description: Optional header to specify the beta version(s) to enable.
            items:
              $ref: '#/components/schemas/ParallelBeta'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskGroupRunRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskGroupRunResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-code-samples:
      - lang: Python
        source: "from parallel import Parallel\nfrom parallel.types import McpServerParam\nfrom parallel.types.run_input_param import RunInputParam\n\nclient = Parallel(api_key=\"API Key\")\ngroup_status = client.task_group.add_runs(\n    \"taskgroup_id\",\n    inputs=[\n        RunInputParam(\n            input=\"What was the GDP of France in 2023?\",\n            processor=\"base\",\n            enable_events=True,\n            mcp_servers=[McpServerParam(\n                type=\"url\",\n                name=\"parallel_web_search\",\n                url=\"https://mcp.parallel.ai/v1beta/search_mcp\",\n                headers={\"x-api-key\": \"API Key\"}\n            )]\n        )\n    ]\n)\nprint(group_status.status)\n"
      - lang: TypeScript
        source: "import Parallel from \"parallel-web\";\n\nconst client = new Parallel();\n\nconst groupStatus = await client.taskGroup.addRuns(\n    'taskgroup_id',\n    {\n        inputs: [\n            {\n                input: 'What was the GDP of France in 2023?',\n                processor: 'base',\n                enable_events: true,\n                mcp_servers: [{\n                    type: 'url',\n                    name: 'parallel_web_search',\n                    url: 'https://mcp.parallel.ai/v1beta/search_mcp',\n                    headers: {'x-api-key': 'API Key'}\n                }]\n            }\n        ]\n    }\n);\nconsole.log(groupStatus.status);"
    get:
      tags:
      - Tasks
      summary: Fetch Task Group Runs
      description: 'Retrieves task runs in a TaskGroup and optionally their inputs and outputs.


        All runs within a TaskGroup are returned as a stream. To get the inputs and/or

        outputs back in the stream, set the corresponding `include_input` and

        `include_output` parameters to `true`.


        The stream is resumable using the `event_id` as the cursor. To resume a stream,

        specify the `last_event_id` parameter with the `event_id` of the last event in the

        stream. The stream will resume from the next event after the `last_event_id`.'
      operationId: tasks_taskgroups_runs_get_v1_tasks_groups__taskgroup_id__runs_get
      parameters:
      - name: taskgroup_id
        in: path
        required: true
        schema:
          type: string
          title: Taskgroup Id
      - name: last_event_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Event Id
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - enum:
            - queued
            - action_required
            - running
            - completed
            - failed
            - cancelling
            - cancelled
            type: string
          - type: 'null'
          title: Status
      - name: include_input
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Include Input
      - name: include_output
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Include Output
      responses:
        '200':
          description: Successful Response
          content:
            text/event-stream:
              schema:
                oneOf:
                - $ref: '#/components/schemas/TaskRunEvent'
                - $ref: '#/components/schemas/ErrorEvent'
                discriminator:
                  propertyName: type
                  mapping:
                    task_run.state: '#/components/schemas/TaskRunEvent'
                    error: '#/components/schemas/ErrorEvent'
                title: Response 200 Tasks Taskgroups Runs Get V1 Tasks Groups  Taskgroup Id  Runs Get
              example:
                type: task_run.state
                event_id: '123'
                input:
                  processor: core
                  metadata:
                    my_key: my_value
                  input:
                    country: France
                    year: 2023
                run:
                  run_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                  interaction_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                  status: completed
                  is_active: false
                  processor: core
                  metadata:
                    my_key: my_value
                  created_at: '2025-04-23T20:21:48.037943Z'
                  modified_at: '2025-04-23T20:21:48.037943Z'
        '404':
          description: TaskGroup not found
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: TaskGroup not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-code-samples:
      - lang: Python
        source: "from parallel import Parallel\n\nclient = Parallel()\n\ntask_group_runs = client.task_group.get_runs(\"taskgroup_id\")\nfor run in task_group_runs:\n    print(run)\n"
      - lang: TypeScript
        source: "import Parallel from \"parallel-web\";\n\nconst client = new Parallel();\n\nconst taskGroupRuns = await client.taskGroup.getRuns(\n    'taskgroup_id',\n);\nfor await (const run of taskGroupRuns) {\n    console.log(run);\n}\n"
  /v1/tasks/groups/{taskgroup_id}/runs/{run_id}:
    get:
      tags:
      - Tasks
      summary: Retrieve Task Group Run
      description: 'Retrieves run status by run_id.


        This endpoint is equivalent to fetching run status directly using the

        `retrieve()` method or the `tasks/runs` GET endpoint.


        The run result is available from the `/result` endpoint.'
      operationId: tasks_taskgroups_runs_id_get_v1_tasks_groups__taskgroup_id__runs__run_id__get
      parameters:
      - name: taskgroup_id
        in: path
        required: true
        schema:
          type: string
          title: Taskgroup Id
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRun'
              example:
                run_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                interaction_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                status: running
                is_active: true
                processor: core
                metadata:
                  my_key: my_value
                created_at: '2025-04-23T20:21:48.037943Z'
                modified_at: '2025-04-23T20:21:48.037943Z'
        '401':
          description: 'Unauthorized: invalid or missing credentials'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Unauthorized: invalid or missing credentials'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Run id not found
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Run id not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Request validation error
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Request validation error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-code-samples:
      - lang: Python
        source: 'from parallel import Parallel


          client = Parallel()


          task_run = client.task_run.retrieve("run_id")

          print(task_run.status)'
      - lang: TypeScript
        source: 'import Parallel from "parallel-web";


          const client = new Parallel();


          const taskRun = await client.taskRun.retrieve(''run_id'');

          console.log(taskRun.status);'
  /v1/tasks/runs:
    post:
      tags:
      - Tasks
      summary: Create Task Run
      description: 'Initiates a task run.


        Returns immediately with a run object in status ''queued''.


        Beta features can be enabled by setting the ''parallel-beta'' header.'
      operationId: tasks_runs_post_v1_tasks_runs_post
      parameters:
      - name: parallel-beta
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Parallel-Beta
          x-stainless-override-schema:
            x-stainless-param: betas
            x-stainless-extend-default: true
            type: array
            description: Optional header to specify the beta version(s) to enable.
            items:
              $ref: '#/components/schemas/ParallelBeta'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskRunInput'
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRun'
              example:
                run_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                interaction_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                status: queued
                is_active: true
                processor: core
                metadata:
                  my_key: my_value
                created_at: '2025-04-23T20:21:48.037943Z'
                modified_at: '2025-04-23T20:21:48.037943Z'
        '401':
          description: 'Unauthorized: invalid or missing credentials'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Unauthorized: invalid or missing credentials'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: 'Payment required: insufficient credit in account'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Payment required: insufficient credit in account'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: 'Forbidden: invalid processor in request'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Forbidden: invalid processor in request'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: 'Unprocessable content: request validation error'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Unprocessable content: request validation error'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: 'Too many requests: quota temporarily exceeded'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Too many requests: quota temporarily exceeded'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-code-samples:
      - lang: Python
        source: "from parallel import Parallel\n\nclient = Parallel()\n\ntask_run = client.task_run.create(\n    input=\"What was the GDP of France in 2023?\",\n    processor=\"base\",\n)\nprint(task_run.run_id)"
      - lang: TypeScript
        source: "import Parallel from \"parallel-web\";\n\nconst client = new Parallel();\n\nconst taskRun = await client.taskRun.create({\n    input: 'What was the GDP of France in 2023?',\n    processor: 'base',\n});\nconsole.log(taskRun.run_id);"
  /v1/tasks/runs/{run_id}:
    get:
      tags:
      - Tasks
      summary: Retrieve Task Run
      description: 'Retrieves run status by run_id.


        The run result is available from the `/result` endpoint.'
      operationId: tasks_runs_get_v1_tasks_runs__run_id__get
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRun'
              example:
                run_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                interaction_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                status: running
                is_active: true
                processor: core
                metadata:
                  my_key: my_value
                created_at: '2025-04-23T20:21:48.037943Z'
                modified_at: '2025-04-23T20:21:48.037943Z'
        '401':
          description: 'Unauthorized: invalid or missing credentials'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Unauthorized: invalid or missing credentials'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Run id not found
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Run id not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Request validation error
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Request validation error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-code-samples:
      - lang: Python
        source: 'from parallel import Parallel


          client = Parallel()


          task_run = client.task_run.retrieve("run_id")

          print(task_run.status)'
      - lang: TypeScript
        source: 'import Parallel from "parallel-web";


          const client = new Parallel();


          const taskRun = await client.taskRun.retrieve(''run_id'');

          console.log(taskRun.status);'
  /v1/tasks/runs/{run_id}/events:
    get:
      tags:
      - Tasks
      summary: Stream Task Run Events
      description: 'Streams events for a task run.


        Returns a stream of events showing progress updates and state changes for the task

        run.


        For task runs that did not have enable_events set to true during creation, the

        frequency of events will be reduced.'
      operationId: tasks_runs_events_get_v1_tasks_runs__run_id__events_get
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            text/event-stream:
              schema:
                oneOf:
                - $ref: '#/components/schemas/TaskRunProgressStatsEvent'
                - $ref: '#/components/schemas/TaskRunProgressMessageEvent'
                - $ref: '#/components/schemas/TaskRunEvent'
                - $ref: '#/components/schemas/ErrorEvent'
                discriminator:
                  propertyName: type
                  mapping:
                    task_run.progress_stats: '#/components/schemas/TaskRunProgressStatsEvent'
                    task_run.progress_msg.plan: '#/components/schemas/TaskRunProgressMessageEvent'
                    task_run.progress_msg.search: '#/components/schemas/TaskRunProgressMessageEvent'
                    task_run.progress_msg.result: '#/components/schemas/TaskRunProgressMessageEvent'
                    task_run.progress_msg.tool_call: '#/components/schemas/TaskRunProgressMessageEvent'
                    task_run.progress_msg.exec_status: '#/components/schemas/TaskRunProgressMessageEvent'
                    task_run.state: '#/components/schemas/TaskRunEvent'
                    error: '#/components/schemas/ErrorEvent'
                title: Response 200 Tasks Runs Events Get V1 Tasks Runs  Run Id  Events Get
              example:
                type: task_run.progress_msg.plan
                message: Planning task...
                timestamp: '2025-04-23T20:21:48.037943Z'
        '401':
          description: 'Unauthorized: invalid or missing credentials'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Unauthorized: invalid or missing credentials'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Run id not found
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Run id not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Request validation error
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Request validation error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-code-samples:
      - lang: Python
        source: "from parallel import Parallel\n\nclient = Parallel()\n\nevents = client.task_run.events(run_id=\"run_id\")\nfor event in events:\n    print(event)\n"
      - lang: TypeScript
        source: "import Parallel from \"parallel-web\";\n\nconst client = new Parallel();\n\nconst events = await client.taskRun.events(\n    'run_id',\n);\nfor await (const event of events) {\n    console.log(event);\n}\n"
  /v1/tasks/runs/{run_id}/input:
    get:
      tags:
      - Tasks
      summary: Retrieve Task Run Input
      description: Retrieves the input of a run by run_id.
      operationId: tasks_runs_input_get_v1_tasks_runs__run_id__input_get
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRunInput'
              example:
                processor: core
                metadata:
                  my_key: my_value
                task_spec:
                  output_schema:
                    json_schema:
                      type: object
                      properties:
                        gdp:
                          type: string
                          description: GDP in USD for the year, formatted like '$3.1 trillion (2023)'
                      required:
                      - gdp
                      additionalProperties: false
                    type: json
                  input_schema:
                    json_schema:
                      type: object
                      properties:
                        country:
                          type: string
                        year:
                          type: integer
                      required:
                      - country
                      - year
                      additionalProperties: false
                    type: json
                input:
                  country: France
                  year: 2023
        '401':
          description: 'Unauthorized: invalid or missing credentials'
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: 'Unauthorized: invalid or missing credentials'
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Run id not found
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Run id not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Request validation error
          content:
            application/json:
              example:
                type: error
                error:
                  ref_id: fcb2b4f3-c75e-4186-87bc-caa1a8381331
                  message: Request validation error
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/tasks/runs/{run_id}/result:
    get:
      tags:
      - Tasks
      summary: Retrieve Task Run Result
      description: Retrieves a run result by run_id, blocking until the run is completed.
      operationId: tasks_runs_result_get_v1_tasks_runs__run_id__result_get
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          title: Run Id
      - name: timeout
        in: query
        required: false
        schema:
          type: integer
          default: 600
          title: Timeout
      - name: parallel-beta
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Parallel-Beta
          x-stainless-override-schema:
            x-stainless-param: betas
            x-stainless-extend-default: true
            type: array
            description: Optional header to specify the beta version(s) to enable.
            items:
              $ref: '#/components/schemas/ParallelBeta'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRunResult'
              example:
                run:
                  run_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                  interaction_id: trun_9907962f83aa4d9d98fd7f4bf745d654
                  status: completed
                  is_active: false
                  processor: core
                  metadata:
                    my_key: my_value
                  created_at: '2025-04-23T20:21:48.037943Z'
                  modified_at: '2025-04-23T20:21:48.037943Z'
                output:
                  basis: []
                  type: json
     

# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/parallel-web-systems/refs/heads/main/openapi/parallel-web-systems-tasks-api-openapi.yml