> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pomerado.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# change_website_tool

> Change an existing Pomerado tool when it lacks something the task needs, such as a filter, an input or an output field, instead of building another tool for the same site.

## Arguments

| Argument | Required | Type | Description |
| - | - | - | - |
| `tool_id` | Yes | string | The ID of the tool to change, from a tool search |
| `change` | Yes | string, up to 2,000 characters | What the tool should do differently, in plain words |
| `login_id` | No | string | The saved login to sign in with, when the site has several |
| `login` | No | object | A login for this call, used only when the site has no saved login: a username (or email, phone or account number) and password, or mode "code" without a password when the site sends a code. It passes through your client and model provider; without it, the run asks the person on its answer page. |
| `save_login` | No | boolean | Save login for later runs (requires login) |
| `idempotency_key` | No | string | Your key for this call. Reuse it only to retry the same call, which then returns the same job instead of acting on the website again. |
| `example_input` | No | string | The input of the one example the change runs, JSON-encoded. |

## Output

The change's [job](/guides/jobs/job-object), with `next`, the call that follows it. Once the change publishes, `build.change` names the tool's new and previous revisions and `build.example_result` holds the example's result.

<CodeGroup>
  ```json Arguments theme={null}
  {
    "tool_id": "tool_11111111111111111111111111111111",
    "change": "Add an optional cabin class input: economy, premium economy, business or first",
    "example_input": "{\"origin\":\"SFO\",\"destination\":\"JFK\",\"departure_date\":\"2026-11-20\",\"cabin_class\":\"business\"}",
    "idempotency_key": "change-flight-search-cabin"
  }
  ```

  ```json Result theme={null}
  {
    "id": "job_dddddddddddddddddddddddddddddddd",
    "type": "build",
    "status": "running",
    "tool_id": "tool_11111111111111111111111111111111",
    "input_request": null,
    "result": null,
    "result_status": null,
    "result_expires_at": null,
    "write_status": null,
    "login_save": null,
    "error": null,
    "message": null,
    "maintenance": null,
    "build": {
      "integration_id": null,
      "stage": "exploring",
      "stages": [
        {
          "key": "queued",
          "label": "Queued",
          "status": "done",
          "started_at": "2026-10-09T17:00:00.000Z",
          "completed_at": "2026-10-09T17:00:00.000Z"
        },
        {
          "key": "exploring",
          "label": "Exploring the site",
          "status": "active",
          "started_at": "2026-10-09T17:00:00.000Z",
          "completed_at": null
        },
        {
          "key": "building",
          "label": "Building and testing",
          "status": "pending",
          "started_at": null,
          "completed_at": null
        },
        {
          "key": "publishing",
          "label": "Reviewing and publishing",
          "status": "pending",
          "started_at": null,
          "completed_at": null
        }
      ],
      "eta": { "min_seconds": 420, "max_seconds": 900 },
      "example_result": null,
      "existing_tool_id": null,
      "change": {
        "revision_id": null,
        "previous_revision_id": null,
        "write_started": false
      }
    },
    "watch_url": "https://app.pomerado.ai/integrations/new?job=job_dddddddddddddddddddddddddddddddd",
    "created_at": "2026-10-09T17:00:00.000Z",
    "updated_at": "2026-10-09T17:00:00.000Z",
    "completed_at": null,
    "next": {
      "action": "wait",
      "call": {
        "tool": "get_job",
        "arguments": {
          "job_id": "job_dddddddddddddddddddddddddddddddd",
          "wait_seconds": 1800
        }
      },
      "why": "This job may stop to ask a question. A question expires 10 minutes after it is asked. Unanswered, it fails a run, and a build usually goes on without the answer. The call returns as soon as the job asks or finishes; while the job still runs, call it again.",
      "if_your_tool_calls_time_out_sooner": "Pass a wait_seconds below your client's tool-call timeout and repeat the call until the job is not running."
    }
  }
  ```
</CodeGroup>

<Accordion title="Details">
  A change takes about as long as a build. Tell the user it is underway, then follow the job with get\_job. The tool keeps working meanwhile, and callers get the change when it publishes.

  Say the change in plain words. Give example\_input with every input the tool requires, plus the new input when you add one. A write tool's change runs that example once for real.

  **Effect:** May change a website or your account, and a change may not be undoable.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.